Qt实践录:常见控件操作示例1

本文记录QT常见控件的操作示例。包括:QPushBotton、QLabel、QComboBox、QSlider、QSpinBox、编辑框(QLineEdit/QPlainTextEdit/QTextEdit) 等等。以使用为导向,慢慢补充。

常见的控件,有很多设置项是相同的。如使能/禁止,可见/不可见,设置提示语,等等。

QPushBotton

常用操作:

使能、禁止:
    ui->pushButton->setEnabled(true);
    ui->pushButton->setEnabled(false);
可见/不可见:
    ui->pushButton->setVisible(true);
    ui->pushButton->setVisible(false);
提示语:
    ui->pushButton->setToolTip("button tips");
按钮扁平:
    ui->pushButton->setFlat(true);
设置文字、图标等:
    ui->pushButton->setText(tr("退出程序"));
    ui->pushButton->setIconSize(ui->pushButton->rect().size()); // 设置大小
    ui->pushButton->setIcon(QIcon(":images/exit.png"));
设置字体或大小:
    QFont qFont;
    qFont.setBold(true); // 这里设置加粗,其它默认
    ui->pushButton->setFont(qFont);
    ui->pushButton->setText(tr("监听端口"));
清除文字:
    ui->pushButton->clear();

单击事件:

控件名称为 pushButton。  
private slots:
    void on_pushButton_clicked();

void MainWindow::on_pushButton_clicked()
{
    // ...
}

QLabel

设置图片:
    QPixmap pixmap(":images/logo.png");
    ui->label->setPixmap(pixmap);
    ui->label->setFixedSize(128, 128);
    ui->label->setScaledContents(true);

QComboBox

添加数据项:
    ui->comboBox->addItem("0"); // 单项添加
    QStringList list;
    list.clear();
    list << "1200" << "2400" << "4800" << "9600" << "14400" << \
         "19200" << "38400" << "43000" << "57600" << "76800" << \
         "115200" << "230400" << "256000" << "460800" << "921600";
    ui->comboBox->addItems(list); // 多项添加
设置当前项:
    ui->comboBox->setCurrentText(tr("115200"));
获取当前项:
    ui->comboBox->currentText();
    

QSlider

Horizontal Slider 和 Vertical Slider类似。

设置范围及当前值:
     ui->horizontalSlider->setRange(0, 100);
     ui->horizontalSlider->setValue(30);
     
获取值:
int val = ui->horizontalSlider->value();

数据变化事件
private slots:
    void on_horizontalSlider_valueChanged(int value);

void MainWindow::on_horizontalSlider_valueChanged(int value)
{
    showDebugInfo(value);
}

QSpinBox

设置范围及当前值:
     ui->spinBox->setRange(0, 100);
     ui->spinBox->setValue(30);
     
获取值:
int val = ui->spinBox->value();

数据变化事件
private slots:
    void on_spinBox_valueChanged(int value);

void MainWindow::on_spinBox_valueChanged(int arg1)
{
    showDebugInfo(arg1);
}

文本框

本节的文本框在一定程度上可以认为是一个各类的控件,但实际是不相干的,其中 QTextEdit 和 QPlainEdit 继承自 QAbstractScrollArea,而 QLineEdit 则继承于 QWidget。注意,前两者最终还是继承 QWidget,但是 QLineEdit 直接继承 QWidget 的。

QLineEdit

QLineEdit 用于单行文字的显示和输入。如账号、密码,等。

    ui->lineEdit->setPlaceholderText("username"); // 占位字符串,用于提示语
    ui->lineEdit->setText("lineEdit"); // 文字
    ui->lineEdit->setReadOnly(true); // 只读
    ui->lineEdit->setAlignment(Qt::AlignHCenter); // 居中对齐
    ui->lineEdit->setMaxLength(6); // 文字最大长度
    // QLineEdit::Password 文字用圆点替换,
    // QLineEdit::PasswordEchoOnEdit 输入时显示,结束后圆点替换
    // QLineEdit::NoEcho // 不显示任何内容,用于长度保护
    ui->lineEdit->setEchoMode(QLineEdit::Password);

事件(控件名为 lineEdit):

on_lineEdit_textChanged:输入文字过程中响应
on_lineEdit_editingFinished:文字输入结束后响应(如按回车或Tab键)

QPlainTextEdit

用于纯文本的输入和显示。

    ui->plainTextEdit->setPlaceholderText("sth text here");
    ui->plainTextEdit->setPlainText("foo");
    ui->plainTextEdit->setReadOnly(true);
    // 追加,分别支持html和纯文本
    ui->plainTextEdit->appendHtml("<font color=\"red\"> red </font>");
    ui->plainTextEdit->appendPlainText("add");

QTextEdit

用于纯文本、富文本的输入和显示。

    ui->textEdit->setPlaceholderText("sth text here");
    ui->textEdit->setPlainText("foo"); // !! 也有setPlainText函数
    ui->textEdit->setText("foo");
    ui->textEdit->setReadOnly(true);
    ui->textEdit->append("<font color=\"red\"> red </font>"); // 追加,支持html

QPlainTextEdit 和 QTextEdit 有textChanged事件响应,但无editingFinished事件。两者支持 HTML 语法,对于一些场合可提高友好性,如不同类别文字使用不同颜色显示,加粗、斜体等。

QTextBrower

继承自 QTextEdit,只读模式,添加导航功能。

    ui->textBrowser->setHtml("a<br>b"); // 
    ui->textBrowser->setText("hello world\n");
    ui->textBrowser->append("a<br>b");

李迟 2020.2.1 年初八 阴天,形势依然严峻,村里大喇叭播报次数频率加大

发布了481 篇原创文章 · 获赞 244 · 访问量 110万+

猜你喜欢

转载自blog.csdn.net/subfate/article/details/104133129
今日推荐