本文已参与「新人创作礼」活动,一起开启掘金创作之路。 @TOC
QPushButton(按钮)
widget.cpp
#include "widget.h"
//导入按钮模块
#include <QPushButton>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
//设置主界面的固定长宽
setFixedSize(200,200);
//创建一个按钮
QPushButton * btn=new QPushButton;
//为按钮设置内容
btn->setText("登录");
//将按钮装入主界面中
btn->setParent(this);
//创建第二个按钮
QPushButton * btn2=new QPushButton("退出",this);
//移动按钮位置
btn2->move(100,0);
//给按钮添加功能
//connect(信号的发送者,发送的信号(函数的地址),信号的接收者,处理的槽函数)
connect(btn2,&QPushButton::clicked,this,&QWidget::close);
}
Widget::~Widget()
{
}
QMenuBar(菜单)
mainwindow.cpp
#include "mainwindow.h"
#include<QMenuBar>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
setFixedSize(600,400);
//菜单栏创建
QMenuBar *bar=menuBar();
setMenuBar(bar);
//创建菜单
QMenu * fileMenu=bar->addMenu("文件");
QMenu * editMenu=bar->addMenu("编辑");
//创建菜单项
fileMenu->addAction("新建");
//添加分割线
fileMenu->addSeparator();
fileMenu->addAction("打开");
}
MainWindow::~MainWindow()
{
}
QToolBar(工具栏)
#include "mainwindow.h"
#include<QMenuBar>
#include<QToolBar>
#include<QPushButton>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
setFixedSize(600,400);
//菜单栏创建
QMenuBar *bar=menuBar();
setMenuBar(bar);
//创建菜单
QMenu * fileMenu=bar->addMenu("文件");
QMenu * editMenu=bar->addMenu("编辑");
//创建菜单项
QAction * newAction=fileMenu->addAction("新建");
//添加分割线
fileMenu->addSeparator();
QAction * openAction=fileMenu->addAction("打开");
//创建工具
QToolBar * tool_bar=new QToolBar(this);
addToolBar(Qt::LeftToolBarArea,tool_bar);
//设置停靠
tool_bar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
//设置浮动
tool_bar->setFloatable(false);
//设置移动
tool_bar->setMovable(false);
//工具栏中设置内容
tool_bar->addAction(newAction);
//添加分割线
tool_bar->addSeparator();
tool_bar->addAction(openAction);
//添加控件
QPushButton * btn=new QPushButton("我是按钮",this);
tool_bar->addWidget(btn);
}
MainWindow::~MainWindow()
{
}
(QLabel)标签
#include "mainwindow.h"
#include<QLabel>
# include<QDebug>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
setFixedSize(600,400);
QLabel * label=new QLabel("我是一个标签",this);
//获取标签的内容
qDebug()<<label->text();
//设置标签的 内容
label->setText("我真的是一个标签");
}
MainWindow::~MainWindow()
{
}
QDockWidget (浮动窗口)
//创建浮动窗口
QDockWidget * dock=new QDockWidget("浮动",this);
//添加
addDockWidget(Qt::RightDockWidgetArea,dock);
//限制
dock->setAllowedAreas(Qt::RightDockWidgetArea |Qt::LeftDockWidgetArea);
QTextEdit (核心组件)
//设置中心组件,只能一个
QTextEdit * edit=new QTextEdit(this);
setCentralWidget(edit);
QDialog(模态框和非模态框)
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QDialog>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->actionNew->setIcon(QIcon(":/img/fruit.png"));
connect(ui->actionNew,&QAction::triggered,[=](){
QDialog dlg(this);
dlg.resize(200,100);
dlg.exec();
//非模态框
/*
QDialog * dlg2=new QDialog(this);
dlg2->resize(200,100);
dlg2->setAttribute(Qt::WA_DeleteOnClose);//防止无限打开
dlg2->show();
*/
});
}
MainWindow::~MainWindow()
{
delete ui;
}
QMessageBox(对话框)
critical(消息对话框)
//critical(父类,标题,提示内容,按键类型,默认关联)
QMessageBox::critical(this,"错误","点击错误!!");
information(信息对话框)
//information(父类,标题,提示内容,按键类型,默认关联)
QMessageBox::information(this,"xxx","xxxx");
question(提问对话框)
//question(父类,标题,提示内容,按键类型,默认关联)
QMessageBox::question(this,"xxx","xxx");
warning(警告对话框)
//warning(父类,标题,提示内容,按键类型,默认关联)
QMessageBox::warning(this,"warming","警告");
QFileDialog(文件对话框)
getOpenFileName(获取打开文件的路径)
//getOpenFileName(父类,标题,默认打开路径,过滤文件格式)
QString filename_path=QFileDialog::getOpenFileName(this,"打开文件","C:","(*.txt)");
QListWidget
节点(QListWidgetItem)
QListWidgetItem* item=new QListWidgetItem(QStringList)
QTreeWidget
节点(QTreeWidgetItem)
QTreeWidgetItem * item=new QTreeWidgetItem (QStringList)
设置水平头(setHeaderLabels)
ui->QTreeWidget(ui名)->setHeaderLabels(QStringList)
顶层头节点(addTopLevelItem)
ui->QTreeWidget(ui名)->addTopLevelItem(Item)
追加子节点(Item.addChild)
Item.addChild(item)
QTabelWidget
节点(QTreeWidgetItem)
QTableWidgetItem* item=new QTableWidgetItem(QStringList)
设置列数(setColumnCount)
ui->tableWidget->setColumnCount(3);
设置水平表头
ui->tableWidget->setHorizontalHeaderLabels(QStringList);
设置行数(setRowCount)
ui->tableWidget->setRowCount(3);
设置正文(setItem)
ui->tableWidget->setItem(row,col,QTableWidgetItem);
重载函数如何进行信号和槽
void(ClassName::*函数名)(参数)=&ClassName::重载函数的方法
QString去双引号
str.toUtf8().data()