文章目錄:
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進行文件讀寫
博文索引 持續更新中。。。