1

Тема: Qt6 доступ до QAction з переліку QList<QAction*>

Треба визначити, яка з дій обрана і зберегти її.
Роблю наступне:

QList<QAction*> actions = ui->menuTheme_settings->actions();
for (auto action = actions.begin(); action != actions.end(); ++action)
{
}

А далі не можу звернутися до окремої дії (action).
Виникає помилка:
Member reference base type 'QAction *' is not a structure or union.

Як отримати доступ до окремої дії та її методу isChecked()?

Подякували: leofun011

2

Re: Qt6 доступ до QAction з переліку QList<QAction*>

Скажіть, а вам не набридло?

3

Re: Qt6 доступ до QAction з переліку QList<QAction*>

koala написав:

Скажіть, а вам не набридло?

Думав форуми створені для того, щоб спілкуватися, ставити питання.
Я кілька місяців не працював з С++, забув, що треба дужки ставити (*action).
А без дужок * не працює. Тому й запитав.

4 Востаннє редагувалося koala (20.05.2024 21:59:33)

Re: Qt6 доступ до QAction з переліку QList<QAction*>

Так от я вас і питаю: чи вам не набридло неповні питання ставити? То код забуваєте, то помилку, то ще щось.

Подякували: leofun011

5

Re: Qt6 доступ до QAction з переліку QList<QAction*>

Teg Miles написав:
koala написав:

Скажіть, а вам не набридло?

Думав форуми створені для того, щоб спілкуватися, ставити питання.

Так, форуми є для того, щоб ставити питання. Проте відповідь часто буде залежати від коректності поставленого вами питання. Як ставити питання, щоб отримати відповідь.

Teg Miles написав:

Я кілька місяців не працював з С++, забув, що треба дужки ставити (*action).
А без дужок * не працює. Тому й запитав.

Я не дуже розумію, чого ви хочете досягнути?
Постійне перестрибування з мови на мову, бібліотеки на бібліотеку -- не принесе вам жодної користі. В результаті ви не вивчите ні одного, ні іншого. Самі ж бачите, що вже все забули. І так, можна обійтись і без дужок (ймовірно).

Подякували: leofun01, koala2

6

Re: Qt6 доступ до QAction з переліку QList<QAction*>

wander написав:
Teg Miles написав:
koala написав:

Скажіть, а вам не набридло?

Думав форуми створені для того, щоб спілкуватися, ставити питання.

Так, форуми є для того, щоб ставити питання. Проте відповідь часто буде залежати від коректності поставленого вами питання. Як ставити питання, щоб отримати відповідь.

Teg Miles написав:

Я кілька місяців не працював з С++, забув, що треба дужки ставити (*action).
А без дужок * не працює. Тому й запитав.

Я не дуже розумію, чого ви хочете досягнути?
Постійне перестрибування з мови на мову, бібліотеки на бібліотеку -- не принесе вам жодної користі. В результаті ви не вивчите ні одного, ні іншого. Самі ж бачите, що вже все забули. І так, можна обійтись і без дужок (ймовірно).

Я не можу закінчити один із проєктів у Rust, який розпочав, бо там бракує певного функціоналу для такого проєкту.
Маю на увазі повноцінний регекс і автодоповнення слів в gtk4.
З іншого боку, є майже закінчений такий самий проєкт у С++, який відклав заради Rust.
Вирішив закінчити його та викласти в мережу.
А тоді ще раз поміркую, на якій мові все ж таки спинитися.
Дуже подобається Rust, але бракує повноцінних бібліотек у деяких напрямках.

Подякували: leofun011

7

Re: Qt6 доступ до QAction з переліку QList<QAction*>

До речі, а так не спрацює?

for (QAction* action: ui->menuTheme_settings->actions())
{
}
Подякували: leofun011

8

Re: Qt6 доступ до QAction з переліку QList<QAction*>

koala написав:

До речі, а так не спрацює?

for (QAction* action: ui->menuTheme_settings->actions())
{
}

Спрацює, але дає попередження:

c++11 range-loop might detach Qt container (QList) [clazy-range-loop-detach]

9

Re: Qt6 доступ до QAction з переліку QList<QAction*>

А вам обов'язково, щоб дія була мутабельною? Для констант ніби це попередження не спливає.

10

Re: Qt6 доступ до QAction з переліку QList<QAction*>

koala написав:

А вам обов'язково, щоб дія була мутабельною? Для констант ніби це попередження не спливає.

Ні, не обов'язково. Тому зробив ось так:

for (auto action = actions.constBegin(); action != actions.constEnd(); ++action)

А якщо робити так:

for (const QAction* action: ui->menuTheme_settings->actions())

Те саме попередження з'являється.

11

Re: Qt6 доступ до QAction з переліку QList<QAction*>

А якщо так?

for (const QAction const * action: ui->menuTheme_settings->actions())

12

Re: Qt6 доступ до QAction з переліку QList<QAction*>

koala написав:

А якщо так?

for (const QAction const * action: ui->menuTheme_settings->actions())

Тоді буде два попередження: 1) те, що раніше; 2) через подвійний const.

Подякували: wander1

13

Re: Qt6 доступ до QAction з переліку QList<QAction*>

О, Господи, цей Qt.. Ну, добре а

auto const action_list = ui->menuTheme_settings->actions();
for (auto action : action_list)
{
}

якщо так?

14

Re: Qt6 доступ до QAction з переліку QList<QAction*>

wander написав:

О, Господи, цей Qt.. Ну, добре а

auto const action_list = ui->menuTheme_settings->actions();
for (auto action : action_list)
{
}

якщо так?

Працює без попереджень. Але я все одно лишу свій варіант :)