Название: Меню не выпадает...:-(
Отправлено: zoro86 от Сентябрь 30, 2010, 09:21
Не могу понять в чем проблема ... Создал MainWindow в QtDesigner-e сделал там меню... Терминал ->Обновить ->Выдрать тему ->Windows Style ->Mac
далее.. #ifndef MAINWINDOW_H #define MAINWINDOW_H
#include <QMainWindow> #include "ui_mainwindow.h" #include "NumPadWidget.h" #include "AdminDialogClass.h" #include "MassageDialogClass.h" #include "parserXmlProviderData.h" #include "GetServicesClass.h"
class RegistrationDialog; class InputNumpad; class AdminDialogClass; class MassageDialogClass; class ParsXmlPrvData; class GetServices; class QTimer;
class MainWindow : public QMainWindow, public Ui::MainWindow { Q_OBJECT
public: explicit MainWindow(QWidget *parent = 0); bool filterEvent(const QEvent* event); bool checUserInBase(); ...
.cpp #include <QtSql> #include <QtCore> #include <QTextStream> #include "mainwindow.h" #include "Registration.h" #include "connection.h"
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { setupUi(this);
//Установка кодировки для интерфейса QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")); ...
компилю все такое.. при запуске при наведении мышкой на меню оно не выделяется... и при щелчке мышкой не выпадает...?? далее сделал следующее.. Унаследовался от Ui::MainWindow оставил в форме только QMenuBar... а менюшки и экшены решил сам накатать.. .h QMenu *menuTerminal; QMenu *menuView; QMenu *menuStyle; QMenu *menuLang; QMenu *menuHelp;
QAction *actionUpdateConfig; QAction *actionUpdateVirsion; QAction *actionChecConnect; QAction *actionChecMassages; QAction *actionSettings; QAction *actionExit; QAction *actionRestartTerminal; QAction *actionWindows; QAction *actionPardokht_Lite; QAction *actionPardokht_Fire; QAction *actionPageFold; QAction *actionVersion; QAction *actionLangRu; QAction *actionLangEng; QAction *actionLangTaj;
void createActions(); void createMenus();
.cpp MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { setupUi(this);
//Установка кодировки для интерфейса QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));
this->createActions(); this->createMenus();
....
void MainWindow::createMenus(){
menuTerminal = Ui::MainWindow::menuBar->addMenu(QString("Терминал")); menuView = Ui::MainWindow::menuBar->addMenu(QString("Вид")); menuStyle = menuView->addMenu(QString("Внешний вид")); menuLang = menuView->addMenu(QString("Язык")); menuHelp = Ui::MainWindow::menuBar->addMenu(QString("О программе"));
menuTerminal->addAction(actionUpdateConfig); menuTerminal->addAction(actionUpdateVirsion); menuTerminal->addAction(actionChecConnect); menuTerminal->addAction(actionChecMassages); menuTerminal->addAction(actionRestartTerminal); menuTerminal->addAction(actionSettings); menuTerminal->addAction(actionExit);
menuView->addAction(menuStyle->menuAction()); menuView->addAction(menuLang->menuAction()); ..... }
void MainWindow::createActions(){ actionUpdateConfig = new QAction(this); actionUpdateConfig->setObjectName(QString::fromUtf8("actionUpdateConfig")); QIcon icon; icon.addFile(QString::fromUtf8(":/images/icons/updata.png"), QSize(), QIcon::Normal, QIcon::Off); actionUpdateConfig->setIcon(icon); actionUpdateVirsion = new QAction(this); actionUpdateVirsion->setObjectName(QString::fromUtf8("actionUpdateVirsion")); QIcon icon1; icon1.addFile(QString::fromUtf8(":/images/icons/update_version.png"), QSize(), QIcon::Normal, QIcon::Off); actionUpdateVirsion->setIcon(icon1); actionChecConnect = new QAction(this); actionChecConnect->setObjectName(QString::fromUtf8("actionChecConnect")); QIcon icon2; icon2.addFile(QString::fromUtf8(":/images/icons/statusnet.png"), QSize(), QIcon::Normal, QIcon::Off); actionChecConnect->setIcon(icon2); actionChecMassages = new QAction(this); actionChecMassages->setObjectName(QString::fromUtf8("actionChecMassages")); QIcon icon3; icon3.addFile(QString::fromUtf8(":/images/icons/message.png"), QSize(), QIcon::Normal, QIcon::Off); actionChecMassages->setIcon(icon3); actionSettings = new QAction(this); actionSettings->setObjectName(QString::fromUtf8("actionSettings")); QIcon icon4; icon4.addFile(QString::fromUtf8(":/images/icons/settings.png"), QSize(), QIcon::Normal, QIcon::Off); actionSettings->setIcon(icon4); actionExit = new QAction(this); actionExit->setObjectName(QString::fromUtf8("actionExit")); QIcon icon5; icon5.addFile(QString::fromUtf8(":/images/icons/exit.png"), QSize(), QIcon::Normal, QIcon::Off); actionExit->setIcon(icon5); actionRestartTerminal = new QAction(this); actionRestartTerminal->setObjectName(QString::fromUtf8("actionRestartTerminal")); QIcon icon6; icon6.addFile(QString::fromUtf8(":/images/icons/reload.png"), QSize(), QIcon::Normal, QIcon::Off); actionRestartTerminal->setIcon(icon6); ....
}
проблема такая же ... при наведении на меню Терминал и Вид они не активируются и не выподают при щелчке по ним... а вот при наведении на меню О программе она активируется и выпадает при щелчке.. далее после выподения меню О программе при нажатии на кнопку в лево падает и Вид и Терминал... кто нить знает что такое не так....??
Название: Re: Меню не выпадает...:-(
Отправлено: GreatSnake от Сентябрь 30, 2010, 09:26
чем занимается MainWindow::filterEvent()?
Название: Re: Меню не выпадает...:-(
Отправлено: lit-uriy от Сентябрь 30, 2010, 10:39
Название: Re: Меню не выпадает...:-(
Отправлено: zoro86 от Сентябрь 30, 2010, 14:32
bool MainWindow::filterEvent(const QEvent* event) { if (event->type() == QEvent::RequestSoftwareInputPanel) { updatePosition(); inputNumpad->show(); return true; } else if (event->type() == QEvent::CloseSoftwareInputPanel) { inputNumpad->hide(); return true; } return false; }
Название: Re: Меню не выпадает...:-(
Отправлено: GreatSnake от Сентябрь 30, 2010, 14:43
И кто использует этот filterEvent()?
У вас явная проблема с обработкой событий. А вот код, где эти проблемы, вы нам не показываете.
Название: Re: Меню не выпадает...:-(
Отправлено: zoro86 от Сентябрь 30, 2010, 14:46
Я удалил void updatePosition(); и bool filterEvent(const QEvent* event);
там в принципе ничего в коде не осталось.
там проста клава использовалась...
объект клаву я тоже удалил..
Название: Re: Меню не выпадает...:-(
Отправлено: zoro86 от Октябрь 01, 2010, 08:02
Нашел Баг....
Тут у меня был объект который занимался парсингом xml конфигурации, который наследуется от QObject так вот я при использовании его в MainWindow давал в parent значение this :-\ :-\ :-\ теперь после того как убрал все стало нормально.. ;D ;)
|