Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: alertforce от Май 03, 2011, 20:03



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


Название: Re: Создание меню
Отправлено: Пантер от Май 03, 2011, 20:25
:)
Срочно в ассистент по сигналам/слотам.
Цитировать
pmnu->addAction ("&Справка",f=fopen("D:\\Qt\\qt\\Kot-build-desktop\\Kot.chm","r"));
Так нельзя.


Название: Re: Создание меню
Отправлено: Mikhail от Май 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 ?


Название: Re: Создание меню
Отправлено: alertforce от Май 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();
}                              \\меню\\


Название: Re: Создание меню
Отправлено: Mikhail от Май 04, 2011, 17:31
Кто такое придумал?

Срочно читать С, С++ и далее Assistant


Название: Re: Создание меню
Отправлено: alertforce от Май 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. Подскажите в чем проблема?


Название: Re: Создание меню
Отправлено: Alex Custov от Май 04, 2011, 18:16
В том, что ты пытаешься что-то писать, не прочитав доступную документацию.