Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: perroBasset от Апрель 17, 2011, 18:20



Название: Несколько базовых вопросов
Отправлено: perroBasset от Апрель 17, 2011, 18:20
Всем добрый вечер!
Я, дабы не надоедать, сразу накопила несколько вопросов. Прошу не злиться, если пишу не "грамотно", во-первых, я с программированием только недавно подружилась, а во-вторых, я жираф  ;D Итак:

1. Есть ли в QVеctor возможность сразу находить максимальный элемент в одномерном массиве? Документацию перерыла, ничего подобного не нашла, но мало ли.

2. Как прикрепить .exe файлу иконку? При запуске программы она отображается в верхнем левом углу, но у экзэшника она стандартная, просто "окошко".

3. (см. картинку) Все менюшки сделала 9 размера. Бодаются только те ("Производные.."), у которых есть подменю(!). Причем я им забила размер 9, но все равно мелкие  >:( Неужели когда есть подменю, то размер больше стандартного не делается??

4. (дибильный) Хочу спрятать на определенном этапе некоторые меню (см. картинку), но не работает ui.menuEdit->hide(). С кнопками и лэйблами все работает.

Пока усе.


Название: Re: Несколько базовых вопросов
Отправлено: blood_shadow от Апрель 17, 2011, 18:55
1. насчет stl -алгоритмов не уверен, но в стандартных кьютешных нету, впрочем и не надо
так как это  не является сложной задачей и реализация может быть разной, для разных целей
2. ни разу это не делал, но полагаю что это void QWidget::setWindowIcon ( const QIcon & icon ) или
на крайняк QApplication::setWindowIcon ( const QIcon & icon )
3, 4 - код в студию


Название: Re: Несколько базовых вопросов
Отправлено: Hellraiser от Апрель 17, 2011, 19:20
п.2 Если иконка в формате ico:
- в файле мой_проект.pro добавить строку
Код:
win32:RC_FILE = myicon.rc
- создаем в блокноте текстовый файл myicon.rc со следующим содержанием
Код:
IDI_ICON1		ICON		DISCARDABLE	"мой_файл_с_иконкой.ico"
(элементы разделяем через Tab)
Файл .rc находится в папке проекта.


Название: Re: Несколько базовых вопросов
Отправлено: mutineer от Апрель 17, 2011, 21:53
1) Используй алгоритмы stl. В QVector для этого есть stl-совместимые итераторы


Название: Re: Несколько базовых вопросов
Отправлено: RoulanD от Апрель 18, 2011, 04:30
п.4 функция setVisible(bool); её используй к нужным пунктам меню (естественно параметры false true);


Название: Re: Несколько базовых вопросов
Отправлено: SABROG от Апрель 18, 2011, 11:41
1. Есть ли в QVеctor возможность сразу находить максимальный элемент в одномерном массиве? Документацию перерыла, ничего подобного не нашла, но мало ли.
Код
C++ (Qt)
#include <algorithm>
...
   QVector<qint32> myvector;
   myvector << 1 << 2 << 3 << 4 << 5;
   QTextStream(stdout)
           << *std::max_element(myvector.constBegin(), myvector.constEnd())
           << endl;
 

3. (см. картинку) Все менюшки сделала 9 размера. Бодаются только те ("Производные.."), у которых есть подменю(!). Причем я им забила размер 9, но все равно мелкие  >:( Неужели когда есть подменю, то размер больше стандартного не делается??

У меня всё ОК. Выставляю в конструкторе главного окна.
Код
C++ (Qt)
   QFont font = menu->font();
   font.setPointSize(14);
   menu->setFont(font);
 
(http://img808.imageshack.us/img808/7323/menusize.png)


Название: Re: Несколько базовых вопросов
Отправлено: lit-uriy от Апрель 18, 2011, 14:15
perroBasset, есть такие понятия:
контейнеры, алгоритмы, итераторы.
Поиск некого элемента в контейнере определяется алгоритмом. Т.е. искать соответсвующий функционал нужно в алгоритмах (пример тебе уже привели)
Почитай введение про контейнеры Qt (http://doc.crossplatform.ru/qt/4.6.x/containers.html)


Название: Re: Несколько базовых вопросов
Отправлено: lit-uriy от Апрель 18, 2011, 14:17
>> ui.menuEdit->hide()
ты применяешь метод к меню, а не к пункту меню (QAction). На панели меню, тоже лежат пункты, а меню (QMenu) - это то что появляется при нажатии на пункт.


Название: Re: Несколько базовых вопросов
Отправлено: perroBasset от Апрель 21, 2011, 10:23
Огромное спасибо всем за ответы!
Сейчас буду разбираться, о результатах сообщу  :)