Секреты и интересные возможности Qt |
Здравствуйте, гость ( Вход | Регистрация )
Секреты и интересные возможности Qt |
void* |
23.9.2008, 20:11
Сообщение
#11
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
также можно регулировать прозрачность любого окошка с помощью метода QWidget::setWindowOpacity(), который принимает в качестве параметра вещественное число, где 1.0 - полная непрозрачность, а 0.0 - полная прозрачность. Соответственно по умолчанию это значение является равным 1.0
|
|
|
kwisp |
26.11.2008, 17:58
Сообщение
#12
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
всем привет.
может я собираюсь написать об очевидной штуке, но однако меня она удивила. 1. если соединить один и тот же сигнал с одним и тем же слотом несколько раз(n), и вызвать сигнал один раз, то слот вызовется столько раз сколько соединений с этим сигналом мы сделали(n).... 2. если разъединить сигнал со слотом - то рушатся все соединения этого сигнала с этим слотом. ... известен ли кому нибудь метод узнать соединен ли сигнал со слотом и если соединен то сколько раз??? |
|
|
kwisp |
29.11.2008, 12:13
Сообщение
#13
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
Litkevich Yuriy, та ни ма за шо.
|
|
|
Litkevich Yuriy |
1.12.2008, 18:59
Сообщение
#14
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
... известен ли кому нибудь метод узнать соединен ли сигнал со слотом и если соединен то сколько раз??? сообщения перенес в отдельную тему: Есть ли метод, чтобы узнать соединен ли сигнал со слотом?
|
|
|
SABROG |
8.12.2008, 16:05
Сообщение
#15
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Использовать QLatin1String вместо QString где это возможно, т.к. первый быстрее.
QString - конвертирует копирует и конвертирует ASCII строку в Unicode каждый раз, когда ему передается строка в конструкторе. QLatin1String - класс-обертка над Си строкой (char *). Строка никуда не копируется, поэтому программист должен сам следить за ней. Имеет смысл использовать отдельно от визуальных компонентов, там где не нужна интернационализация. |
|
|
molchanoviv |
8.12.2008, 16:11
Сообщение
#16
|
Старейший участник Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: 5 |
Только прирост этот будет незаметен. Так зачем этот геморой?
|
|
|
SABROG |
8.12.2008, 16:17
Сообщение
#17
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Только прирост этот будет незаметен. Так зачем этот геморой? Это смотря какая специфика приложения. Если предположить, что есть большой QList с такими строками и строки тоже не маленькие, а в приложении используется меньшая часть списка, то зачем конвертировать весь список сразу ? И экономия процессора и памяти, все-таки Unicode не однобайтовая кодировка. Вопрос. Как редактировать свои посты, а то опечатки вылазят ? |
|
|
SABROG |
8.12.2008, 16:44
Сообщение
#18
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
К теме о сигналах. Бывают случаи, когда надо испустить сигнал внутри обработчика событий, но подобное не работает, т.к. это может привести к зацикливанию и Qt блокирует такие сигналы. В метод connect можно передать дополнительный флаг Qt::QueuedConnection, что говорит Qt вызвать слот для сигнала при следующем цикле QEventLoop (т.е. после выхода из обработчика событий или метода). Такой прием обычно используется для помещения приложения в tray через кнопку minimize.
|
|
|
SABROG |
8.12.2008, 18:01
Сообщение
#19
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
В Qt есть возможность использовать системные иконки (разные для каждой ОС, определяются динамически). К сожалению в QtDesigner'e почему-то такой возможности нет и подобный метод рассчитан на ручную простановку иконок для каждого элемента. Поможет в этом метод QStyle::standardIcon(). Доступ к методу можно получить через указатель qApp->style()->standardIcon(...);
Выбор иконок не велик, но некоторые могут пригодится: http://doc.trolltech.com/main-snapshot/qst...dardPixmap-enum |
|
|
SABROG |
9.12.2008, 14:31
Сообщение
#20
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
В Qt можно соединять не только сигнал со слотом, но и сигнал с сигналом. Это приведет к тому, что сигнал запустит второй сигнал. При этом если первый и второй сигналы были подключены к слотам, то они тоже вызываются (естественно, если на нем что-то завязано, сигнал типа clicked() врятли кликнет на кнопку).
|
|
|
Текстовая версия | Сейчас: 25.11.2024, 9:09 |