Russian Qt Forum
Ноябрь 26, 2024, 19:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Создание меню  (Прочитано 4717 раз)
alertforce
Гость
« : Май 03, 2011, 20:03 »

Помогите создать меню с одним меню верхнего уровня и двумя командами: справка и выход. При нажатии на справку должен открыватся файл .chm. Пробовал так но не выходит:

int main(int argc, char *argv[])
{  FILE *f;
    QApplication app(argc, argv);
    QMenuBar mnuBar;
    QMenu* pmnu=new QMenu ("&Menu");
    pmnu->addAction ("&Выход",&app,SLOT(quit()));
    pmnu->addAction ("&Справка",f=fopen("D:\\Qt\\qt\\Kot-build-desktop\\Kot.chm","r"));
    mnuBar.addMenu(pmnu);
    mnuBar.show;
    return app.exec();
}
« Последнее редактирование: Май 03, 2011, 20:26 от Пантер » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Май 03, 2011, 20:25 »

Улыбающийся
Срочно в ассистент по сигналам/слотам.
Цитировать
pmnu->addAction ("&Справка",f=fopen("D:\\Qt\\qt\\Kot-build-desktop\\Kot.chm","r"));
Так нельзя.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #2 : Май 03, 2011, 20:31 »


#include <QtGui/QApplication>
//#include "mainwindow.h"
#include <QMenuBar>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);


    QMenuBar mnuBar;
    QMenu* pmnu=new QMenu ("&Menu");
    pmnu->addAction ("&Exit",&a,SLOT(quit()));
    pmnu->addAction ("&Help",&a,SLOT(quit()));
    mnuBar.addMenu(pmnu);
     mnuBar.show()

    return a.exec();
}

show это метод.
В вашем случае пример даже не компилируется.
А кто будет открывать файл chm ?
Записан
alertforce
Гость
« Ответ #3 : Май 04, 2011, 17:16 »

При нажатии на справка открывается .chm, справка типа формулы для расчетов.
И еще вопрос это ж надо писать в main.cpp отдельно от основной программы правильно? Если да то выдает ошибки:
redefiniton of 'int qMain(int,char**)' - в строке после первой закрывающей }
'int qMain(int,char**)' previously defined here - в выделенной строке

#include <QtGui/QApplication>
#include "kat.h"
#include <QMenuBar>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    kat w;
    w.show();

    return a.exec();
}                            \\основная программа\\

int main(int argc, char *argv[])
{   QApplication app(argc, argv);
    QMenuBar mnuBar;
    QMenu* pmnu=new QMenu ("&Menu");
    pmnu->addAction ("&Exit",&app,SLOT(quit()));
    pmnu->addAction ("&Help",&app,SLOT(quit()));
    mnuBar.addMenu(pmnu);
    mnuBar.show();
    return app.exec();
}                              \\меню\\
« Последнее редактирование: Май 04, 2011, 17:18 от alertforce » Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #4 : Май 04, 2011, 17:31 »

Кто такое придумал?

Срочно читать С, С++ и далее Assistant
Записан
alertforce
Гость
« Ответ #5 : Май 04, 2011, 18:10 »

Переделал так:


#include <QtGui/QApplication>
#include "kat.h"
#include <QMenuBar>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    kat w;
        QMenuBar mnuBar;
        QMenu* pmnu=new QMenu ("&Menu");
        pmnu->addAction ("&Выход",&a,SLOT(quit()));
        pmnu->addAction ("&Справка",&a,SLOT(quit()));
        mnuBar.addMenu(pmnu);
        w.show();
        mnuBar.show();
        return a.exec();
}
Ошибка collect2: id returned 1 exit status. Подскажите в чем проблема?
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #6 : Май 04, 2011, 18:16 »

В том, что ты пытаешься что-то писать, не прочитав доступную документацию.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.079 секунд. Запросов: 23.