Size: a a a

2021 March 21

Г

ГуАлСе in Qt
ГуАлСе
Не знаю где спросить, поэтому спрошу тут:

Можно в каком нибудь файле кофигов сделать чтобы QT использовал свою тему? Сейчас у меня в среде стоит QT_QPA_PLATFORMTHEME=qt5ct, но Firefox и Telegram умудряются эту переменную сбрасывать. На KDE всё было нормально
источник

Г

ГуАлСе in Qt
ГуАлСе
Не знаю где спросить, поэтому спрошу тут:

Можно в каком нибудь файле кофигов сделать чтобы QT использовал свою тему? Сейчас у меня в среде стоит QT_QPA_PLATFORMTHEME=qt5ct, но Firefox и Telegram умудряются эту переменную сбрасывать. На KDE всё было нормально
источник

A

Artem in Qt
connect(action, &QAction::triggered, this, &MainWindow::mainMenuClicked);

Как то можно передать в эту конструкцию sender() ?
источник

AS

Anatoly Shirokov in Qt
Artem
connect(action, &QAction::triggered, this, &MainWindow::mainMenuClicked);

Как то можно передать в эту конструкцию sender() ?
Достать сендера можно в слоте через sender()
источник

A

Artem in Qt
Anatoly Shirokov
Достать сендера можно в слоте через sender()
QToolButton *button = static_cast<QToolButton*>(sender()); вот так делаю, но крашится программа, если это делать из нативного меню на макос
источник

AU

Abu Umar in Qt
Artem
connect(action, &QAction::triggered, this, &MainWindow::mainMenuClicked);

Как то можно передать в эту конструкцию sender() ?
Используйте лучше лямбду с захватом. Если у вас sender внезапно окажется не тем чем хочется то всякое может быть
источник

A

Artem in Qt
Abu Umar
Используйте лучше лямбду с захватом. Если у вас sender внезапно окажется не тем чем хочется то всякое может быть
А что за захват?
источник

AS

Anatoly Shirokov in Qt
Artem
QToolButton *button = static_cast<QToolButton*>(sender()); вот так делаю, но крашится программа, если это делать из нативного меню на макос
Так посмотри реальный тип, который к тебе приходит в sender()
источник

AS

Anatoly Shirokov in Qt
Ты коннектишь action, action и принимай
источник

A

Artem in Qt
Anatoly Shirokov
Так посмотри реальный тип, который к тебе приходит в sender()
Проблема была в objectName) спасибо
источник

A

Artem in Qt
Anatoly Shirokov
Ты коннектишь action, action и принимай
А можно как то через emit передать сендера?
источник

AU

Abu Umar in Qt
Artem
connect(action, &QAction::triggered, this, &MainWindow::mainMenuClicked);

Как то можно передать в эту конструкцию sender() ?
connect(action, &QAction::triggered, this, [this, button]{mainMenuClicked();
И здесь у вас есть доступ к button}):
источник

A

Artem in Qt
Abu Umar
connect(action, &QAction::triggered, this, [this, button]{mainMenuClicked();
И здесь у вас есть доступ к button}):
А как кнопку из ui туда передать?
источник

AU

Abu Umar in Qt
Artem
А как кнопку из ui туда передать?
Вам нужно захватить указатель на эту кнопку, и не важно где эта кнопка. Хотя наверное сделать это через ui будет не слишком удобно
источник

A

Artem in Qt
Abu Umar
Вам нужно захватить указатель на эту кнопку, и не важно где эта кнопка. Хотя наверное сделать это через ui будет не слишком удобно
QToolButton *btn = ui->myBtn; я вот так сделал - работает
источник

AU

Abu Umar in Qt
Artem
QToolButton *btn = ui->myBtn; я вот так сделал - работает
Если ui простой то так...
источник

A

Artem in Qt
Abu Umar
Если ui простой то так...
А что значит простой?

Можно так: QToolButton(ui->accountsButton)
источник

AU

Abu Umar in Qt
Artem
А что значит простой?

Можно так: QToolButton(ui->accountsButton)
Мы просто не используем редактор форм, вручную весь ui делаем. Простой в том смысле что у вас мало элементов и уровней вложенности
источник

A

Artem in Qt
Abu Umar
Мы просто не используем редактор форм, вручную весь ui делаем. Простой в том смысле что у вас мало элементов и уровней вложенности
В таком случае можно qml использовать)
источник

A

Artem in Qt
Abu Umar
connect(action, &QAction::triggered, this, [this, button]{mainMenuClicked();
И здесь у вас есть доступ к button}):
Так а как ее передать в mainMenuClicked? Чтобы внутри mainMenuClicked можно было получить с помощью sender()
источник