| 
 Название: Меню не выпадает...:-(
 Отправлено: 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 ;)
 
 
 |