Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets > Концепция "слоты-сигналы" - удел только QT или и иных языков? |
Автор: Сергей85 04.05.17, 16:45 |
Может ли данная концепция захватить мир? Не могу в нее въехать полностью, аж тошнит уже. Как вы относитесь к QT вообще. По мне, как добавка к непонятной концепции, имеет много глюков. Когда, например: - простое изменение цвета шрифта превращается не в простое button->font->color, а в radio_button->setStyleSheet("QRadioButton { color: red; }"); - а когда данный код выполнится - он вышибет все остальные стили кнопки в дефолтные. То есть, текст станет красным - но потеряет название шрифта, размер, жирность и проч. |
Автор: _lcf_ 04.05.17, 19:12 |
ну, в текущем виде вряд ли. во-первых, moc работает медленно. во-вторых, сигналы-слоты суть шаблоны, и ничего вида qobject в шаблоны не запихаешь. виджеты рулят, контейнеры тормозят. если хочешь нормально юзать стайлшит, то тогда нужен набор из всех интересующих тебя свойств с разными параметрами из которых собирается итоговый пак. это не глюк, это концепт - если ты хочешь поменять фундамент, стены/крыша кагбэ улетят нах... |
Автор: JoeUser 05.05.17, 10:16 |
Цитата Сергей85 @ Когда, например: - простое изменение цвета шрифта превращается не в простое button->font->color, а в radio_button->setStyleSheet("QRadioButton { color: red; }"); - а когда данный код выполнится - он вышибет все остальные стили кнопки в дефолтные. То есть, текст станет красным - но потеряет название шрифта, размер, жирность и проч. Стили пользовать совсем не обязательно. <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> Dialog::Dialog(QWidget *parent) : QDialog(parent) { QGroupBox *GroupBox = new QGroupBox("Radio Buttons"); QVBoxLayout *V = new QVBoxLayout(); QRadioButton *R1 = new QRadioButton("&Red"); QRadioButton *R2 = new QRadioButton("&Yellow"); QRadioButton *R3 = new QRadioButton("&Green"); // изменение цветов ------------------------------------------------ QPalette P1 = R1->palette(); P1.setColor(QPalette::WindowText, Qt::red); R1->setPalette(P1); QPalette P2 = R2->palette(); P2.setColor(QPalette::WindowText, Qt::yellow); R2->setPalette(P2); QPalette P3 = R3->palette(); P3.setColor(QPalette::WindowText, Qt::green); R3->setPalette(P3); // ----------------------------------------------------------------- V->addWidget(R1); V->addWidget(R2); V->addWidget(R3); R1->setChecked(true); GroupBox->setLayout(V); QVBoxLayout *L = new QVBoxLayout(); L->addWidget(GroupBox); setLayout(L); } |