Я пишу всплывающее меню для виджета кнопки Qt, всякий раз, когда нажимается кнопка, появляется всплывающее меню (под кнопкой).Задать позицию (справа) всплывающего меню Qt PushButton
По умолчанию всплывающее меню по умолчанию левое. Есть ли способ, чтобы всплывающее меню всплывало с правой стороны под кнопкой?
Нет установленной функции позиции ... так что я задаюсь вопросом, есть ли какой-то сложный способ сделать это?
Вот некоторый код (для всплывающего меню):
QMenu *menuMode = new QMenu(this);
min = menu ->addAction("In");
mout = menu ->addAction("out");
ui->pushButtonMode->setMenu(menuMode); //I am writing in MainWindow, that's there is ui
Большого спасибо за какие-либо указания и рекомендации.
Спасибо, я работаю над этим! Могу ли я спросить, почему в классе 'PopupMenu' есть' QPushButton * b'? И будет ли функция 'showEvent' вызываться каждый раз, когда я нажимаю кнопку PushupMenu? – Ryan
Кроме того, я наткнулся на эти ошибки: '' popupmenu.obj: ошибка LNK2001: неразрешенный внешний символ "public: virtual struct QMetaObject const * __cdecl PopupMenu :: metaObject (void) const" 'popupmenu.obj: ошибка LNK2001: неразрешенный внешний символ" public: virtual void * __cdecl PopupMenu :: qt_metacast (символ сопз *)»' ' ' popupmenu.obj: ошибка LNK2001: неразрешенный внешний символ "общественности: виртуальный ИНТ __cdecl PopupMenu :: qt_metacall (перечисление QMetaObject :: Вызов, INT, аннулируются *)" ' I натолкнулся на подобные ошибки раньше, но я также не знаю, почему это связано с QMetaObject – Ryan
@Ryan 'QPushButton * b' используется, чтобы сообщить PopupMenu, какой экземпляр кнопки он должен выровнять. yes, 'showEvent' будет вызываться каждый раз, когда нажимается кнопка. о ваших ошибках: взгляните на [этот вопрос и ответы] (http://stackoverflow.com/questions/14170770/unresolved-external-symbol-public-virtual-struct-qmetaobject-const-thiscal) –