重置窗口大小 resize(int,int)
设置固定窗口大小 setFixedSize(int,int)
设置窗口标题 setWindowTitle
创建 QPushButton btn=new QPushButton;
设置当前窗口为父亲 setParent(this)
重置按钮大小 resize(int ,int)
设置按钮位置 move(int ,int)
设置文本 setText(string)
Qt5版本写法:
connect(信号发送者,发送的信息(信号函数),信号接收者,信号处理函数(槽))
例:
QPushButton pushButton=new QPushButton;
//关闭当前窗口
connect(pushButton,&QPushButton::clicked,this,&QWigdet::close());
Qt4版本写法(不会对类型进行检测):
connect(信号发送者,SIGNAL(信号函数),信号接收者,SLOT(槽));
例:
QpushButton pushButton=new QPushButton;
connect(pushButton,SIGNAL(QPushButton::click(bool)),this,SLOT(QWidget::close()));
信号可以连接信号
一个信号可以连接多个槽
多个信号可以连接桶一个槽
信号函数和槽函数参类型徐一一对应
信号参数个数可以多于槽函数
disconnect(信号发送者,发送的信息(行为函数),信号接收者,信号处理函数(槽))
写法类似connect
//创建菜单栏(菜单栏默认属于tihs)
QMenuBar *bar = menuBar();
//将菜单栏放置到窗口中
setMenuBar(bar);
//因此时菜单中并没有菜单故不会显示
//返回值为QMenu*
QMenu *fileMenu = bar->addMenu("文件");
fileMenu->addAction("新建");
fileMenu->addSeparator();
QToolBar *toolBar = new QToolBar(this);
//将工具栏显示在窗口中(第一个参数为位置,第二个为放置的工具栏)
addToolBar(QT::leftToolBarArea,toolBar);
//设置仅可左右停靠,位置为枚举值
toolBar->setAllowedAreas(LeftToolBarArea | RightToolBarArea);
//设置浮动,ture为可浮动,false为不可浮动,默认值为true
toolBar->setFloatable(false);
//设置移动,true为可移动,false为不可移动,默认值为false
toolBar->setMovable(false);
//添加菜单项
toolBar->addAction(fileAction);
//添加分割线
toolBar->addSeparator();
//添加控件(pushButton为一个按钮)
toolBar->addWidget(pushButton);
位置枚举值:
枚举值 | 对应数值 | 放置位置 |
---|---|---|
Qt::LeftToolBarArea | 0x01 | 左 |
Qt::RightToolBarArea | 0x02 | 右 |
Qt::TopToolBarArea | 0x04 | 上 |
Qt::BottomToolBarArea | 0x08 | 下 |
Qt::AllToolBarArea | 0x0f | 所有位置 |
Qt::NoToolBarArea | 0 | 不可移动 |
QStatusBar *stBar=statusBar();
//设置到窗口中
setStatusBar(stBar);
//QLable标签类型
QLabel *lab=new QLabel("信息",this);
QLabel *lab2=new QLabel("信息2",this);
//放置标签
stBar->addWidget(lab);
stBar->addWidget(lab2,20);
//浮动窗口
QDockWidget *dock =new QDockWidget("浮动",this);
addDockWidget(Qt::BottomDockWidgetArea,dock);
//设置左右停靠
setAllowedAreas(LeftDuckWidgetArea|RightDuckWidgetArea);
位置枚举值:
枚举值 | 对应数值 | 放置位置 |
---|---|---|
Qt::LeftDuckWidgetArea | 0x01 | 左 |
Qt::RightDuckWidgetArea | 0x02 | 右 |
Qt::TopDuckWidgetrArea | 0x04 | 上 |
Qt::BottomToolBarArea | 0x08 | 下 |
Qt::AllDuckWidgetArea | 0x0f | 所有位置 |
Qt::NoDuckWidgetArea | 0 | 不可移动 |
//QTextEdit文本控件
QTextEdit *edit=new QTextEdit(this);
setCentralWidget(edit);
//设置action图标为资源中的的图片
ui->actionNew->setIcon(QIcon(":/new/abc.ico"));
窗口模态 | 作用 |
---|---|
Qt:NonModal | 非模态,可以和程序的其他窗口进行交互 |
Qt:WindowModal | 将阻止和对话框的父窗口进行交互 |
Qt:ApplicationModal | 应用程序模态,阻止和任何其他窗口进行交互 |
例:
//槽函数触发对象actionNew,新建一个名为“提示”的对话框
connect(ui->actionNew,&QAction::triggered,[=](){
QDialog *dlg=new QDialog(this);
dlg->setWindowTitle("提示");
dlg->resize(200,200);
//设置为应用程序模态
dlg->setWindowModality(Qt::ApplicationModal);
//设置属性为按下关闭后析构
dlg->setAttribute(Qt::WA_DeleteOnClose);
dlg->show();
qDebug()<<"rua";
});
1.头文件QMessageBox
2.种类及用法:
种类 | 用途 | 用法 |
---|---|---|
critical | 错误对话框 | QMessageBox::critical(this,“标题”,“文本”); |
question | 提问对话框 | QMessageBox::question(this,“标题”,“文本”,按钮值1|按钮值2,默认停靠按钮); |
warning | 警告对话框 | QMessageBox::warning(this,“标题”,“内容”,“按键文字”); |
information | 提示对话框 | QMessageBox::information(this,“标题”,“内容”,“按键文字”); |
例:
QMessageBox::critical(this,"错误","未知错误");
if(!QMessageBox::question(this,"提问","先有的鸡还是先有的蛋","鸡","蛋","不晓得"))
qDebug()<<"鸡";
else
qDebug()<<"蛋";
//返回值可以理解为一个整数
qDebug()<<QMessageBox::question(this,"提问","先有的鸡还是先有的蛋","鸡","蛋","不晓得");
QMessageBox::information(this,"标题","内容","按键文字");
QMessageBox::warning(this,"一个提示","获得了一筐鸡蛋","要得");
未完待续(不定期更新)