QT手动设计较为复杂的窗口(未添加事件)

来源:互联网 发布:阿里云沙发管家 编辑:程序博客网 时间:2024/06/06 16:53

目标建立一个如下的窗口


首先定义MyWin.h

#pragma once#include "qwidget.h"//手工布局MyWin.h#include <QWidget>#include <QPushButton>#include <QLineEdit>#include <QPlainTextEdit>class MyWin :public QWidget{Q_OBJECTpublic:MyWin(QWidget *parent);~MyWin();private://添加成员变量QPushButton* m_button;QLineEdit* m_lineEdit;QPlainTextEdit* m_textEdit;};
在MyWin.cpp中添加

//MyWin.cpp#include "MyWin.h"#include <QHBoxLayout>#include <QVBoxLayout>MyWin::MyWin(QWidget *parent):QWidget(parent){m_button = new QPushButton(this);m_button->setText("OK");m_lineEdit = new QLineEdit(this);m_textEdit = new QPlainTextEdit(this);//局部变量而非成员变量//1:使用局部变量是没有任何问题的,因为所有的对象最后都交给了父窗口管理//2:如果想使用每个对象,就得用一个成员变量指针指向它QHBoxLayout* layout1 = new QHBoxLayout();layout1->addWidget(m_lineEdit);layout1->addWidget(m_button);QVBoxLayout* layout2 = new QVBoxLayout();layout2->addLayout(layout1);//注意添加layout1layout2->addWidget(m_textEdit);this->setLayout(layout2);}MyWin::~MyWin(){}
最后在main.cpp中

//main.cpp#include <QtWidgets/QApplication>#include "MyWin.h"int main(int argc, char *argv[]){QApplication a(argc, argv);MyWin w(NULL);w.resize(400, 300);w.move(100, 100);w.show();return a.exec();}

调试运行




原创粉丝点击