文章目錄:
1,QPushButton的使用 2,QLineEdit的使用
3,QTextEdit的使用 4,RadioButton的使用 5,CheckBox的使用 6,TableWidget的使用 7,QComboBox的使用 8,QDataTime的使用 9,Spin Box的使用 11,Progress Bar的使用 12,Label的使用 13,QTime時鐘類的使用 14,QToolBox工具盒類的使用 15,QPalette調(diào)色板類 16,分割窗口Qsplitter類 17,QListWidget類的使用 15,QPalette調(diào)色板類 16,分割窗口Qsplitter類 17,QListWidget類的使用 18,基本的布局類 19,標準文件對話框 20,標準顏色對話框 21,標準字體對話框 22,標準輸入對話框 23,消息對話框 24,打開文件操作 25,保存文件代碼 26,二維圖形 27,背景圖片設(shè)置 27,打開文件
1,QPushButton的使用
設(shè)置按鈕背景色
ui->pushButton->setStyleSheet("background-color:green"); 設(shè)置按鈕字體顏色 ui->pushButton->setStyleSheet("color:red"); ui->pushButton->setStyleSheet("QPushButton{font:bold 16px;color:red}"); 設(shè)置按鈕背景圖片 ui->pushButton->setIconSize(QSize(ui->pushButton->width(),ui->pushButton->height())); ui->pushButton->setIcon(QIcon(QPixmap(":/file/image/map.png")));
2,QLineEdit的使用
設(shè)置值 ui->lineEdit->setText("hello"); 獲取值 qDebug() << ui->lineEdit->text(); 設(shè)置密碼模式 ui->lineEdit->setEchoMode(QLineEdit::Password); 輸入的密碼自動變成圓形圖案 ui->lineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit); 輸入的密碼在失焦后變成圓形圖案 ui->lineEdit->setPlaceholderText("input text:"); 提示輸入 ui->lineEdit->setGeometry(50,50,100,100); //設(shè)置位置大小
3,QTextEdit的使用
設(shè)置值 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); 查詢選中狀態(tài) qDebug() << ui->checkBox_2->isChecked(); Check Box特性是同時可以選中多個
6,TableWidget的使用
設(shè)置表格行列數(shù) 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的使用
創(chuàng)建,、設(shè)置范圍,、設(shè)置步進值 ui->spinBox->setRange(1,100); ui->spinBox->setSingleStep(10); ui->spinBox->setValue(20); 獲取當前值 qDebug() << ui->spinBox->value();
10,LCD Number的使用
設(shè)置顯示數(shù)值位數(shù),、設(shè)置值,、設(shè)置顯示模式 ui->lcdNumber->setDigitCount(10); ui->lcdNumber->setHexMode(); ui->lcdNumber->display(1000);
11,Progress Bar的使用
設(shè)置范圍,、設(shè)置顯示進度值 ui->progressBar->setRange(1,100); ui->progressBar->setValue(60);
12,Label的使用
創(chuàng)建、設(shè)置背景色,、設(shè)置標簽文字,、獲取標簽 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調(diào)色板類
例: 設(shè)置背景圖片 setAutoFillBackground(true); QPalette pal; pal.setBrush(QPalette::Background,QBrush(QPixmap(":/1.jpg"))); setPalette(pal);
使用樣式表(setStyleSheet函數(shù))比調(diào)色板更加可靠
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();
17,QListWidget類的使用
18,基本的布局類:
(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);
19,標準文件對話框
QFileDialog QString s = QFileDialog::getOpenFileName (this, "open file dialog", "/", "C++ files (*.cpp);;C files (*.c);;Head files (*.h);;all files(*.*)"); ui->lineEdit->setText(s);
20,標準顏色對話框
QColorDialog QColor color = QColorDialog::getColor (Qt::blue); if(color.isValid()) { ui->frame->setAutoFillBackground(true); ui->frame->setPalette(QPalette(color)); }
21,標準字體對話框
QFontDialog bool ok; QFont font = QFontDialog::getFont( &ok ); if( ok ) { fontLineEdit->setFont( font ); }
22,標準輸入對話框
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參數(shù)表示對list不能作修改 if (ok) ui->nameLabel->setText(sex);
23,消息對話框
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; }
24,打開文件操作
25,保存文件代碼
26,二維圖形
Qt的二維圖形引擎是基于Qpainter類,QPainter既可以繪制幾何形狀(點,、線,、矩形、橢圓,、弧形,、多邊形等),也可以繪制像素映射,、圖像,、文字 重新實現(xiàn)QWidget::paintEvent()可用于定制窗口部件 使用Qpainter的draw函數(shù),可以繪制各種各樣的形狀,,繪制的效果取決于Qpainter的設(shè)置,。三個主要的設(shè)置是畫筆、畫刷和字體
利用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函數(shù) 當調(diào)用update函數(shù)時,,paintEvent函數(shù)會被自動調(diào)用
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")); }
27,背景圖片設(shè)置
27,打開文件
Qfile open方法
讀寫文本文件
文件讀寫一般通過QTextStream (文本方式)或者QDataStream(二進制方式)進行 寫文件 QFile file("test.txt"); /*如果文件不存在,會自動創(chuàng)建*/ 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進行文件讀寫
|