窗体widget :在QT中吧窗口称做widget不仅仅是带边框的窗口叫widget ,其他的所有边界面组件,譬如工具栏,按钮,本文框,下拉列表,复选框,都叫Widget
这些标签都继承于一个共同的父类:QWidget
继承关系:
使用案例
QWidget *w = new QWidget();
w->show();
一:用代码实现一个窗口
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget *w = new QWidget();
w->setGeometry(100, 500, 20, 50);
w->move(500,200);
w->show();
return a.exec();
}
程序效果
- *QWidget w = new QWidget(); 创建一个指针w,指向新创建的 对象QWidget();
- setGeometry(100, 500, 20, 50); 设置窗口大小和位置 参数1:窗口内框x坐标 2:y坐标 3:窗口的宽 4:高
- show(); 显示窗口
- new QWidget(); 开辟一个存放窗口变量的地址空间
- b->move(500,200) :外窗口位置。
设计c++知识点:构造函数,析构函数 new
二:窗口里面实现增加一个按键
mian.cpp
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
#include "Mywin.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Mywin d(NULL);
Mywin *T = new Mywin(NULL);
d.show();
T->show();
return a.exec();
}
MyWin.cpp
#include<MyWin.h>
Mywin::Mywin(QWidget*parent):QWidget(parent)
{
m_button = new QPushButton(this);
m_button->setText("hello");
m_button->setGeometry(100, 100, 200, 50);
}
Mywin::~Mywin()
{
}
MyWin.h
#ifndef __MYWIN_H
#define __MYWIN_H
#include<QWidget>
#include<QPushButton>
class Mywin:public QWidget
{
Q_OBJECT
public:
Mywin(QWidget *parent);
~Mywin();
private:
QPushButton *m_button;
};
#endif //MYWIN_H
3改进版本
main.cpp
#include <QtWidgets/QApplication>
#include<MyWin.h>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyWin *w = new MyWin(NULL);
w->setGeometry(500, 500, 600, 300);
w->show();
return a.exec();
}
MyWin.cpp
#include<MyWin.h>
MyWin::MyWin(QWidget *parent) :QWidget(parent)
{
m_lineEdit = new QLineEdit(this);
m_lineEdit->setGeometry(30, 0, 300, 50);
m_button = new QPushButton(this);
m_button->setText("hello");
m_button->setGeometry(400, 0, 100, 50);
m_plainTextEdit = new QPlainTextEdit(this);
m_plainTextEdit->setGeometry(30, 70, 500, 80);
}
MyWin::~MyWin()
{
}
MyWin.h
#ifndef __MYWIN_H
#define __MYWIN_H
#include<QWidget>
#include<QPushButton>
#include<QLineEdit>
#include<QPlainTextEdit> /*文本框*/
class MyWin : public QWidget
{
Q_OBJECT
public:
MyWin(QWidget *parent);
~MyWin();
private:
QPushButton*m_button;
QLineEdit*m_lineEdit;
QPlainTextEdit*m_plainTextEdit;
};
#endif
话说这个VS界面是真的漂亮