Старая старая программа qt4 - ее попросили добавить меню -C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Старая старая программа qt4 - ее попросили добавить меню -

Сообщение Anonymous »

EAGH
Опция «Выход», которую я видел в меню, — это меню Ubuntu «Выход из приложения». НЕ МОЕ.
Итак, возникает вопрос: почему я не вижу меню в своем приложении?
Приведенный ниже код представляет собой код, который, как я думал, даст мне меню.
HGAE
Мне дали программу Qt4 15-летней давности для улучшения (не спрашивайте - она работает хорошо и не имеет сообщений об ошибках/проблемах).

Я пытался получить ее в qt6 и дал вверх. Предлагалось реализовать через qt5. Извините, жизнь слишком коротка.
Я думаю, что разбираюсь в меню.

Я не понимаю объектно-ориентированное программирование! Я предпочитаю чистый C - так было с 70-х годов.
Программа на C++ (вероятно, слишком большая, чтобы публиковать ее - тысячи строк) использует "основной" класс под названием RA

Код: Выделить всё

class RA : public QWidget
Я нашел в Интернете несколько хороших простых примеров меню (https://zetcode.com/gui/qt4/menusandtoolbars/)

Код: Выделить всё

class AnotherMenu : public QMainWindow {
public:
AnotherMenu(QWidget *parent = 0);
};
Проблема заключается в том, что когда я интегрирую код меню в существующую программу, я не вижу всех пунктов меню.

Я добавил строку ниже в основную

Код: Выделить всё

  AnotherMenu *m = new AnotherMenu(screen);
Это кусок нового кода.....

Код: Выделить всё

  QAction *newa = new QAction(newpix, "&New", this);
QAction *open = new QAction(openpix, "&Open", this);
QAction *quit = new QAction(quitpix, "&Quit", this);
quit->setShortcut(tr("CTRL+Q"));
open->setShortcut(tr("CTRL+O"));

QMenu *file;
file = menuBar()->addMenu("&File");
file->addAction(newa);
file->addAction(open);
//file->addSeparator();
file->addAction(quit);

qApp->setAttribute(Qt::AA_DontShowIconsInMenus, false);

connect(quit, SIGNAL(triggered()), qApp, SLOT(quit()));
Новые и открытые параметры просто не отображаются в меню;
Я поменял местами строки в коде и добавил соединения для новых и открытых...

Код: Выделить всё

  QMenu *file;
file = menuBar)->addMenu("&File");
file->addAction(quit);
file->addAction(newa);
file->addAction(open);
//file->addSeparator();

qApp->setAttribute(Qt::AA_DontShowIconsInMenus, false);

connect(quit, SIGNAL(triggered()), qApp, SLOT(quit()));
connect(newa, SIGNAL(triggered()), qApp, SLOT(quit()));
connect(open, SIGNAL(triggered()), qApp, SLOT(quit()));
В появившемся меню просто отображается вариант «выйти».
Есть ли у кого-нибудь подсказки?? Qt5/Qt6 нежизнеспособен - модификация кода - это услуга для нефинансируемой группы, и я не могу тратить недели на его переписывание и внесение ошибок! (В коде правильное сочетание звука, Bluetooth и графики — слишком много для быстрого перекодирования).

Подробнее здесь: https://stackoverflow.com/questions/798 ... -add-menus
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»