यहाँ एक तुच्छ उदाहरण अनुप्रयोग है कि अपने सिस्टम पर ठीक से काम करता (क्यूटी 5.3.1 है बदला जा सकता है, MacOS/एक्स 10.9 .5)। क्या यह आपके लिए भी सही तरीके से काम करता है? यदि ऐसा है, तो इस कार्यक्रम और आपके कार्यक्रम के बीच क्या अलग है, इसे आज़माएं और जानें।
आप showNormal() को कॉल करने के बाद शो(), raise(), और सक्रिय Window() को कॉल करने का प्रयास भी कर सकते हैं और देख सकते हैं कि उन चीजों की सहायता क्या है।
// MyWindow.h
#ifndef MYWINDOW_H
#define MYWINDOW_H
#include <QAction>
#include <QLabel>
#include <QTimer>
#include <QTime>
#include <QMainWindow>
class MyWindow : public QMainWindow
{
Q_OBJECT
public:
MyWindow();
private slots:
void goFS();
void goNormal();
private:
QAction * fsAct;
QAction * normAct;
};
#endif // MYWINDOW_H
... और .cpp फ़ाइल:
// MyWindow.cpp
#include <QApplication>
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include "MyWindow.h"
MyWindow :: MyWindow()
{
fsAct = new QAction(tr("Full Screen Mode"), this);
connect(fsAct, SIGNAL(triggered()), this, SLOT(goFS()));
normAct = new QAction(tr("Normal Mode"), this);
connect(normAct, SIGNAL(triggered()), this, SLOT(goNormal()));
normAct->setEnabled(false);
QMenuBar * mb = menuBar();
QMenu * modeMenu = mb->addMenu(tr("ScreenMode"));
modeMenu->addAction(fsAct);
modeMenu->addAction(normAct);
}
void MyWindow :: goFS()
{
normAct->setEnabled(true);
fsAct->setEnabled(false);
showFullScreen();
}
void MyWindow :: goNormal()
{
normAct->setEnabled(false);
fsAct->setEnabled(true);
showNormal();
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyWindow scr;
scr.show();
return a.exec();
}
स्रोत
2014-10-09 14:44:44
प्रतिक्रिया के लिए धन्यवाद! मैंने इसे आज़माया, लेकिन दुर्भाग्य से मैं वही व्यवहार देख रहा हूं। –