2012-05-17 80 views
0

我有一个使用Qt打开窗口的C++程序,但窗口不能调整大小,并且最大化按钮丢失。
大部分代码是从教程中复制的。
参见:http://zetcode.com/tutorials/qt4tutorial/firstprograms/
这是正常的吗?这里是我的代码:Qt中可调整大小和最大化窗口

#include <QApplication> 
#include <QDesktopWidget> 
#include <QWidget> 
#include <QIcon> 
#include <QPushButton> 
#include <QTextEdit> 

using namespace std; 

class Frame : public QWidget { 
    public: Frame(QWidget *parent = 0); 
}; 

void center(QWidget *widget, int w, int h) { 
    int x, y; 
    int screenWidth; 
    int screenHeight; 

    QDesktopWidget *desktop = QApplication::desktop(); 

    screenWidth = desktop->width(); 
    screenHeight = desktop->height(); 

    x = (screenWidth - w)/2; 
    y = (screenHeight - h)/2; 

    widget->move(x, y); 
} 

Frame::Frame(QWidget *parent) : QWidget(parent) { 
    int WIDTH = 250; 
    int HEIGHT = 150; 

    setFixedSize(WIDTH, HEIGHT); 

    QTextEdit *edit = new QTextEdit(this); 
    edit -> setGeometry(5, 5, 200, 150); 

    QPushButton *quit = new QPushButton("Quit", this); 
    quit->setGeometry(50, 40, 75, 30); 

    center(this, WIDTH, HEIGHT); 

    connect(quit, SIGNAL(clicked()), qApp, SLOT(quit())); 
} 

int main(int argc, char *argv[]) { 
    QApplication app(argc, argv); 
    Frame window; 

    window.setWindowTitle("My window"); 
    window.setWindowIcon(QIcon("image.jpg")); 
    window.show(); 

    return app.exec(); 
} 
+0

没关系我已经想通了:并调整其大小替换setFixedSize –

+0

setFixedSize让小部件让你设置的大小。所以它不会调整大小,所以Qt会自动删除按钮 –

回答

1

在你的构件的构造函数中使用setWindowFlags(Qt::WindowMinimizeButtonHint|Qt::WindowMaximizeButtonHint|Qt::Window)

更多look here