Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.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
Цитата Сергей85 @
Может ли данная концепция захватить мир?

ну, в текущем виде вряд ли.
во-первых, moc работает медленно.
во-вторых, сигналы-слоты суть шаблоны, и ничего вида qobject в шаблоны не запихаешь.
Цитата Сергей85 @
Как вы относитесь к QT вообще.

виджеты рулят, контейнеры тормозят.
Цитата Сергей85 @
setStyleSheet

если хочешь нормально юзать стайлшит, то тогда нужен набор из всех интересующих тебя свойств с разными параметрами из которых собирается итоговый пак. это не глюк, это концепт - если ты хочешь поменять фундамент, стены/крыша кагбэ улетят нах...

Автор: 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);
    }

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)