2017-11-19 18 views
0

아래 코드에서 Quit 위젯의 응용 프로그램, 기본 클래스 QMainWindow 및 .ui 형식을 만들지 않습니다. 왜 MenuBar가 표시되지 않고 다른 변형을 시도했는지 아무도 알 수없는 이유를 이해합니다. This image demonstrate what i got.Qt MainWindow가 MenuBar를 표시하지 않습니다

시스템 우분투 16.04. QMake 버전 3.0 및 Qt 버전 5.5.1 사용

참고 : 다른 컴퓨터에서는 동일한 코드가 올바르게 작동합니다. mainwindow.cpp 아래 mainwindow.h

#ifndef MAINWINDOW_H 
#define MAINWINDOW_H 

#include <QMainWindow> 
#include <QtGui> 
#include <QWidget> 

class MainWindow : public QMainWindow 
{ 
    Q_OBJECT 

public: 
    MainWindow(QWidget *parent = 0); 
    ~MainWindow(); 
private: 
    QMenu *file; 
}; 

#endif // MAINWINDOW_H 

아래

는, 선 내가 그것을 해결하기 위해 시도하는 방법을 보여줍니다 댓글을 달았습니다.

#include "mainwindow.h" 
#include <QtGui> 
#include <QtWidgets> 

MainWindow::MainWindow(QWidget *parent) 
    : QMainWindow(parent) 
{ 
    //QVBoxLayout *vbl = new QVBoxLayout; 
    QMenu *file = new QMenu("&File"); //menuBar()->addMenu("&File");//new QMenu("&File"); 
    file->addAction("&Quit",qApp,SLOT(quit()),Qt::CTRL+Qt::Key_Q); 


    QMenuBar *mb = menuBar(); 

    mb->addMenu(file); 
    mb->show(); 
    setMenuBar(mb); 

    //vbl->setMenuBar(mb); 
    //setLayout(vbl); 

    resize(400,400); 
} 

MainWindow::~MainWindow() 
{ 

} 
+0

당신이 QVBoxLayout을 만들 이유가 이해하지 않지만, 심지어 그와 코드가 작동하고 내가 메뉴를 관찰, 당신은 [, 최소를 완료하고 검증 가능한 예 (https://stackoverflow.com/help/를 제공해야합니다 mcve), 그것은 당신의 오류를 재현 코드, 그리고 나는 그것이 내가 코드를 사용하기 때문에없는보고가 명백하게는 QWidget에 위젯을 변경, 작은 수정을하고 작품. – eyllanesc

+0

문제는 다른 컴퓨터에서 동일한 코드가 작동한다는 것입니다. 내 컴퓨터에서만 잘못된 결과가 표시됩니다. –

+0

그런 다음 Qt를 다시 설치하고 다시 실행하십시오. 특히 특별한 대답은 SO에서 대답 할 수 없습니다. – eyllanesc

답변

0

일부 구성 요소를 조사하고 다시 설치 한 후이 간단한 문제가 해결되었습니다. '메뉴 표시 줄에서'창 제목 표시 줄 '에서'창 메뉴 표시 '의'시스템 설정 -> 모양 -> 동작 매개 변수 '를 변경해야합니다. 도움을 청한 모든 분들께 감사드립니다.