crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Глюк в меню, Кнопки меню не реагируют на мышь.
NordWest
  опции профиля:
сообщение 4.2.2009, 12:35
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 86
Регистрация: 26.11.2008
Пользователь №: 433

Спасибо сказали: 1 раз(а)




Репутация:   0  


Глюк такой вышел в программе. По началу меню работало исправно, но с какого-то момента, возможно после создания очередного раздела (кнопки), все кнопки кроме последней перестали реагировать на прикосновения мыши. Даже наведение указателя на пункт не приводил к выделению кнопки.
Теперь, чтобы войти в неактивные разделы, можно только открыв щелчком последнее меню и переведя мышь на предыдущие. при такой манипуляции всё работает.

Вот код, который меню создает:
fileMenu = menuBar()->addMenu(tr("file"));
viewMenu = menuBar()->addMenu(tr("view"));
frameMenu = menuBar()->addMenu(tr("frame"));
toolMenu = menuBar()->addMenu(tr("Test"));


Это без содержимого. Могу полное содержимое предоставить, если поможет...
Пробовал отключать часть меню или все - не помогает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 4.2.2009, 13:03
Сообщение #2


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


ну, обрывок наверное мало поможет.

Сообщение отредактировал trdm - 4.2.2009, 13:04
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
NordWest
  опции профиля:
сообщение 4.2.2009, 13:15
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 86
Регистрация: 26.11.2008
Пользователь №: 433

Спасибо сказали: 1 раз(а)




Репутация:   0  


Ок, привожу весь код:
Раскрывающийся текст
 void MainWindow::setMenu()
{
    //BEGIN menu "file"
    fileMenu = menuBar()->addMenu(tr("file"));// добавляем меню file
    //add action "open fits"
    openFitsAct = new QAction(tr("&open fits"), this);// добавляем "действие" open fits
    openFitsAct->setShortcut(tr("Ctrl+O"));//назначаем "горячую клавишу" Ctrl+O для действия open fits
    openFitsAct->setStatusTip(tr("open fits file"));// назначаем "подсказку"
    fileMenu->addAction(openFitsAct);
    connect(openFitsAct, SIGNAL(triggered()), this, SLOT(slotOpenFItsFile()));// назначаем слот, который будет выполняться при выборе данного пункта меню
    // остальные разделы меню и их "действия" (опции) добавляются по той же схеме, что и open fits
    viewFMAct = new QAction(tr("&File Manager"), this);//
    viewFMAct->setShortcut(tr("Ctrl+M"));
    fileMenu->addAction(viewFMAct);
    connect(viewFMAct, SIGNAL(triggered()), this, SLOT(slotFrameManagerAct()));
    //add action "exit"
    exitAct = new QAction(tr("&exit"), this);
    exitAct->setShortcut(tr("Ctrl+X"));
    exitAct->setStatusTip(tr("exit"));
    fileMenu->addAction(exitAct);
    connect(exitAct, SIGNAL(triggered()), this, SLOT(slotExit()));
    //END menu "file"

    /////////////////////////////////////////////////////////////////////////////////
    //BEGIN menu "view"
    viewMenu = menuBar()->addMenu(tr("view"));
    //add action "increase"
    incAct = new QAction(tr("&increase"), this);
    incAct->setShortcut(tr("Ctrl+="));
    incAct->setStatusTip(tr("increase"));
    viewMenu->addAction(incAct);
    connect(incAct, SIGNAL(triggered()), this, SLOT(slotIncrease()));
    //add action "decrease"
    decAct = new QAction(tr("&decrease"), this);
    decAct->setShortcut(tr("Ctrl+-"));
    decAct->setStatusTip(tr("decrease"));
    viewMenu->addAction(decAct);
    connect(decAct, SIGNAL(triggered()), this, SLOT(slotDecrease()));
    //add action "background left"
    backLeftAct = new QAction(tr("&background left"), this);
    backLeftAct->setShortcut(tr("Ctrl+F1"));
    backLeftAct->setStatusTip(tr("background left"));
    viewMenu->addAction(backLeftAct);
    connect(backLeftAct, SIGNAL(triggered()), this, SLOT(slotBackLeft()));
    //add action "background right"
    backRightAct = new QAction(tr("&background right"), this);
    backRightAct->setShortcut(tr("Ctrl+F2"));
    backRightAct->setStatusTip(tr("background right"));
    viewMenu->addAction(backRightAct);
    connect(backRightAct, SIGNAL(triggered()), this, SLOT(slotBackRight()));
    //add action "signal left"
    signalLeftAct = new QAction(tr("&signal left"), this);
    signalLeftAct->setShortcut(tr("Ctrl+F3"));
    signalLeftAct->setStatusTip(tr("signal left"));
    viewMenu->addAction(signalLeftAct);
    connect(signalLeftAct, SIGNAL(triggered()), this, SLOT(slotSignalLeft()));
    //add action "signal right"
    signalRightAct = new QAction(tr("&signal right"), this);
    signalRightAct->setShortcut(tr("Ctrl+F4"));
    signalRightAct->setStatusTip(tr("signal right"));
    viewMenu->addAction(signalRightAct);
    connect(signalRightAct, SIGNAL(triggered()), this, SLOT(slotSignalRight()));
    //add action "set default"
    setDefaultAct = new QAction(tr("&set default"), this);
    setDefaultAct->setShortcut(tr("Ctrl+F5"));
    setDefaultAct->setStatusTip(tr("set default"));
    viewMenu->addAction(setDefaultAct);
    connect(setDefaultAct, SIGNAL(triggered()), this, SLOT(slotSetDefault()));
    //add action "set full diapason"
    setFullDiapasonAct = new QAction(tr("&set full diapason"), this);
    setFullDiapasonAct->setShortcut(tr("Ctrl+F6"));
    setFullDiapasonAct->setStatusTip(tr("set full diapason"));
    viewMenu->addAction(setFullDiapasonAct);
    connect(setFullDiapasonAct, SIGNAL(triggered()), this, SLOT(slotSetFullDiapason()));
    //END menu "view"
    
    //////////////////////////////////////
    //BEGIN menu "frame"
    frameMenu = menuBar()->addMenu(tr("frame"));
    //add action "next"
    nextAct = new QAction(tr("&next"), this);
    nextAct->setShortcut(tr("Ctrl+."));
    nextAct->setStatusTip(tr("next"));
    frameMenu->addAction(nextAct);
    connect(nextAct, SIGNAL(triggered()), this, SLOT(slotNext()));
    //add action "previous"
    prevAct = new QAction(tr("&previous"), this);
    prevAct->setShortcut(tr("Ctrl+,"));
    prevAct->setStatusTip(tr("previous"));
    frameMenu->addAction(prevAct);
    connect(prevAct, SIGNAL(triggered()), this, SLOT(slotPreviouse()));
    //add action "delete"
    delAct = new QAction(tr("&delete"), this);
    delAct->setShortcut(tr("Ctrl+Delete"));
    delAct->setStatusTip(tr("delete"));
    frameMenu->addAction(delAct);
    connect(delAct, SIGNAL(triggered()), this, SLOT(slotDelete()));
    
    keyAct = new QAction(tr("&FITS header"), this);
    keyAct->setShortcut(tr("Ctrl+H"));
    keyAct->setStatusTip(tr("FITS header"));
    frameMenu->addAction(keyAct);
    connect(keyAct, SIGNAL(triggered()), this, SLOT(slotKeyAct()));
  
    //END menu "frame"

    // menu test
    toolMenu = menuBar()->addMenu(tr("Test"));
    //
    //test1 action
    test1Act = new QAction(tr("&Test1"), this);
    test1Act->setStatusTip(tr("Test1"));
    toolMenu->addAction(test1Act);
    connect(test1Act, SIGNAL(triggered()), this, SLOT(slotTest1()));
    //test2 action
    test2Act = new QAction(tr("&Test2"), this);
    test2Act->setStatusTip(tr("Test2"));
    toolMenu->addAction(test2Act);
    connect(test2Act, SIGNAL(triggered()), this, SLOT(slotTest2()));
    //propAct
    propAct = new QAction(tr("&properties panel"), this);
//   propAct->setShortcut(tr("Ctrl+P"));
    propAct->setStatusTip(tr("properties panel"));
    toolMenu->addAction(propAct);
    connect(propAct, SIGNAL(triggered()), this, SLOT(slotPropAct()));
    //marksAct
    marksAct = new QAction(tr("&marks panel"), this);
//    marksAct->setShortcut(tr("F10"));
    marksAct->setStatusTip(tr("properties panel"));
    toolMenu->addAction(marksAct);
    connect(marksAct, SIGNAL(triggered()), this, SLOT(slotMarksAct()));
    
///////////////////////////////
    
}


Причина редактирования: используй внутри expand'а тэг code
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 23:31