Qt入门笔记1
来源:互联网 发布:php文件缓存 编辑:程序博客网 时间:2024/04/30 05:45
文章目录:
1,QPushButton的使用:
设置按钮背景色
ui->pushButton->setStyleSheet("background-color:green");
设置按钮字体颜色
ui->pushButton->setStyleSheet("color:red");
ui->pushButton->setStyleSheet("QPushButton{font:bold 16px;color:red}");
设置按钮背景图片
ui->pushButton->setIconSize(QSize(ui->pushButton->width(),ui->pushButton->height()));
ui->pushButton->setIcon(QIcon(QPixmap(":/file/image/map.png")));
2,QLineEdit的使用
设置值
ui->lineEdit->setText("hello");
获取值
qDebug() << ui->lineEdit->text();
设置密码模式
ui->lineEdit->setEchoMode(QLineEdit::Password);
输入的密码自动变成圆形图案
ui->lineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);
输入的密码在失焦后变成圆形图案
ui->lineEdit->setPlaceholderText("input text:"); 提示输入
ui->lineEdit->setGeometry(50,50,100,100); //设置位置大小
3,QTextEdit的使用
设置值
ui->textEdit->setText("hello");
ui->textEdit->append(“hello”); //追加
获取值
qDebug() << ui->textEdit->toPlainText();
4,RadioButton的使用
选中
ui->radioButton->setCheckable(true);
ui->radioButton->setChecked(true);
取消选中
ui->radioButton->setCheckable(false);
Radio button特性是多个只能选中一个
5,CheckBox的使用
选中
ui->checkBox->setCheckable(true);
ui->checkBox->setChecked(true);
ui->checkBox_2->setChecked(true);
取消选中
ui->checkBox->setChecked(false);
查询选中状态
qDebug() << ui->checkBox_2->isChecked();
Check Box特性是同时可以选中多个
6,TableWidget的使用
设置表格行列数
ui->tableWidget->setColumnCount(4);
ui->tableWidget->setRowCount(3);
往表格中添加元素
QTableWidgetItem *itm = new QTableWidgetItem(tr("a"));
ui->tableWidget->setItem(1,1,itm);
itm->setTextAlignment(Qt::AlignLeft);
QLabel *label = new QLabel();
label->setPixmap(QPixmap(":/file/image/map.png").scaled(40,50)); ui->tableWidget->setCellWidget(0,0,label);
7,QComboBox的使用
QComboBox *box = new QComboBox();
box->addItem("male");
box->addItem("female");
ui->tableWidget->setCellWidget(0,2,box);
获取条目值
qDebug() << box->currentText();
qDebug() << box->itemText(1);
8,QDataTime的使用
QDateTimeEdit *time = new QDateTimeEdit();
time->setDateTime(QDateTime::currentDateTime());
time->setDisplayFormat("dd/M/yyyy");
time->setCalendarPopup(true); //鼠标点上去,自动弹出日历
ui->tableWidget->setCellWidget(2,0,time);
9,Spin Box的使用
创建、设置范围、设置步进值
ui->spinBox->setRange(1,100);
ui->spinBox->setSingleStep(10);
ui->spinBox->setValue(20);
获取当前值
qDebug() << ui->spinBox->value();
10,LCD Number的使用
设置显示数值位数、设置值、设置显示模式
ui->lcdNumber->setDigitCount(10);
ui->lcdNumber->setHexMode();
ui->lcdNumber->display(1000);
11,Progress Bar的使用
设置范围、设置显示进度值
ui->progressBar->setRange(1,100);
ui->progressBar->setValue(60);
12,Label的使用
创建、设置背景色、设置标签文字、获取标签
ui->label->setStyleSheet("background-color:red");
ui->label->setText("hello");
qDebug() << ui->label->text();
13,QTime时钟类的使用
A QTime object contains a clock time, i.e. the number of hours, minutes, seconds, and milliseconds since midnight
QTime time = QTime::currentTime();
qDebug() << time.hour();
QString text = time.toString("hh:mm");
qDebug() << text;
14,QToolBox工具盒类的使用
QToolBox, QToolButton
ui->toolButton->setText("小明");
ui->toolButton->setIcon(QPixmap(":/file/images/1.png"));
ui->toolButton->setIconSize(QPixmap(":/file/images/1.png").size());
ui->toolButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
ui->toolButton->setAutoRaise(true);
15,QPalette调色板类
例: 设置背景图片
setAutoFillBackground(true);
QPalette pal;
pal.setBrush(QPalette::Background,QBrush(QPixmap(":/1.jpg")));
setPalette(pal);
使用样式表(setStyleSheet函数)比调色板更加可靠
16,分割窗口Qsplitter类
split = new QSplitter();
edit1 = new QTextEdit();
edit2 = new QTextEdit();
edit3 = new QTextEdit();
split->addWidget(edit1);
split->addWidget(edit2);
split->addWidget(edit3);
split->setWindowTitle("split window");
split->show();
19,QListWidget类的使用
17,基本的布局类:
(1)水平布局
btn1 = new QPushButton(tr("C"));
btn2 = new QPushButton(tr("C++"));
btn3 = new QPushButton(tr("Java")); QHBoxLayout *layout = new QHBoxLayout();
layout->addWidget(btn1);
layout->addWidget(btn2);
layout->addWidget(btn3); setLayout(layout);
(2)垂直布局
btn1 = new QPushButton(tr("C"));
btn2 = new QPushButton(tr("C++"));
btn3 = new QPushButton(tr("Java")); QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(btn1);
layout->addWidget(btn2);
layout->addWidget(btn3); setLayout(layout);
(3)栅格布局
lab1 = new QLabel(tr("姓名"));
lab2 = new QLabel(tr("性别"));
line1 = new QLineEdit();
box = new QComboBox();
box->addItem("男");
box->addItem("女");
lab3 = new QLabel(tr("备注:以上信息请认真填写"));
lab4 = new QLabel(tr("个人简介"));
edit = new QTextEdit();
QGridLayout *layout = new QGridLayout();
layout->addWidget(lab1, 0, 0);
layout->addWidget(line1, 0, 1);
layout->addWidget(lab2, 1, 0);
layout->addWidget(box, 1, 1);
layout->addWidget(lab4, 2, 0);
layout->addWidget(edit, 2, 1); layout->addWidget(lab3, 3, 0, 1, 2);
setLayout(layout);
18,标准文件对话框
QFileDialog
QString s = QFileDialog::getOpenFileName
(this, "open file dialog", "/",
"C++ files (*.cpp);;C files (*.c);;Head files (*.h);;all files(*.*)");
ui->lineEdit->setText(s);
19,标准颜色对话框
QColorDialog
QColor color = QColorDialog::getColor (Qt::blue); if(color.isValid())
{
ui->frame->setAutoFillBackground(true);
ui->frame->setPalette(QPalette(color));
}
20,标准字体对话框
QFontDialog
bool ok;
QFont font = QFontDialog::getFont( &ok );
if( ok )
{
fontLineEdit->setFont( font );
}
21,标准输入对话框
QInputDialog
bool ok;
QString name = QInputDialog::getText(this, tr("User Name"), tr("Please input new name:"), QLineEdit::Normal, ui->nameLabel->text(),&ok);
if(ok && !name.isEmpty())
ui->nameLabel->setText(name);
QStringList list;
list << tr("male") << tr("female");
bool ok;
QString sex = QInputDialog::getItem(this,tr(“Sex”), tr(“Please selectsex:”),list,0,false,&ok); //false参数表示对list不能作修改
if (ok)
ui->nameLabel->setText(sex);
22,消息对话框
QMessageBox
switch(QMessageBox::question(this,"Question",tr("It's end of document,search from begin?"),
QMessageBox::Ok|QMessageBox::Cancel,QMessageBox::Ok))
{
case QMessageBox::Ok:
label->setText(" Question button / Ok ");
break;
case QMessageBox::Cancel:
label->setText(" Question button / Cancel ");
break;
default:
break;
}
QMessageBox::information(this,"Information",tr("anything you want tell user"));
switch(QMessageBox::warning(this,"Warning",tr("Save changes to document?"),
QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel,QMessageBox::Save))
{
case QMessageBox::Save:
label->setText(" Warning button / Save ");
break;
case QMessageBox::Discard:
label->setText(" Warning button / Discard ");
break;
case QMessageBox::Cancel:
label->setText(" Warning button / Cancel ");
break;
default:
break;
}
23,打开文件操作
24,保存文件代码
25,二维图形
Qt的二维图形引擎是基于Qpainter类,QPainter既可以绘制几何形状(点、线、矩形、椭圆、弧形、多边形等),也可以绘制像素映射、图像、文字
重新实现QWidget::paintEvent()可用于定制窗口部件
使用Qpainter的draw函数,可以绘制各种各样的形状,绘制的效果取决于Qpainter的设置。三个主要的设置是画笔、画刷和字体
利用Qpainter绘制各种图形
画笔QPen类
The QPen class defines how a QPainter should draw lines and outlines of shapes。
A pen has a style(), width(), brush(), capStyle() and joinStyle().
画刷类QBrush
The QBrush class defines the fill pattern of shapes drawn by QPainter.
A brush has a style, a color, a gradient and a texture.
重写paintEvent函数
当调用update函数时,paintEvent函数会被自动调用
oid Dialog::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setPen(Qt::blue);
painter.setFont(QFont("Arial", 30));
painter.drawText(rect(), Qt::AlignCenter, "Qt");painter.drawLine(110,20,30,40);painter.drawPixmap(45,69,QPixmap(":/file/image/4.png"));
}
26,背景图片设置
27,打开文件
Qfile open方法
读写文本文件
文件读写一般通过QTextStream (文本方式)或者QDataStream(二进制方式)进行
写文件
QFile file("test.txt");
/*如果文件不存在,会自动创建*/
if (file.open(QIODevice::WriteOnly | QIODevice::Text))
{
QTextStream out(&file);
out << "hello world" << endl << "nihao" << endl;
}
else
{
QMessageBox::information(this, "msg", "file not found");
}
使用QDataStream进行文件读写
博文索引 持续更新中。。。
- Qt入门笔记1
- Qt 笔记#1 :Qt入门Hello Qt
- QT学习笔记1:QT入门
- Qt入门学习笔记1
- QT Creator入门——笔记1
- Qt 入门笔记
- Qt入门笔记2
- qt学习笔记(一) qt入门
- qt学习笔记(一) qt入门
- Qt入门笔记----Windows版
- Qt入门笔记----Windows版
- Qt入门笔记----Windows版
- QT入门笔记--Hello,World
- QT入门笔记--创建对话框
- 3.2 对话框QDialog(1)-->Qt Creater 快速入门(笔记)
- qt开发入门1
- Qt (1) 入门
- Qt学习-入门1
- SpingMVC随笔
- Day5 基于greenDao的List存储与查询方法大全
- Android签名
- 基于注解的Spring多数据源配置和使用
- 将17字节mac字符串转换为6字节mac
- Qt入门笔记1
- linux 下日志 too many open files 异常
- linux远程服务器后台执行命令
- 无需第三方sdk支持的定位功能实现
- mybatis配置
- java中的几种对象(PO,VO,DAO,BO,POJO)
- MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建
- 【Front-End】1分钟教你封装手机APP
- Android studio Mac版 安装及使用记录