【QT】QT从零入门教程(八):QT常用控件 [QLabel、QPushButton、QLineEdit、QTextEdit]

x33g5p2x  于2022-03-06 转载在 其他  
字(3.1k)|赞(0)|评价(0)|浏览(768)

本节介绍一些常用的控件,是在“图像处理自编软件”中用到的几种,包括QLabel、QPushButton、QLineEdit、QTextEdit、QSlider、QSpinBox、 QRadioButton、QComboBox,下面逐一进行介绍QLabel、QPushButton、QLineEdit、QTextEdit,其余见下文。

// 接上文,在DockWidget停靠窗口上添加控件,如果在主窗口添加控件,删除参数dock_Geom或是将其改为this即可
QLabel *label = new QLabel(tr("label"), dock_Geom); // QLabel文本框,可用于显示文字和图像,如果想在主窗口创建控件,第二个参数QWidget *parent改为this即QLabel *label = new QLabel(tr("label"), this);

QPushButton *button = new QPushButton(tr("按钮"),dock_Geom);    // QPushButton按钮
connect(button, SIGNAL(clicked()), this, SLOT(slot_button()));

QLineEdit *lineEdit = new QLineEdit(tr("Line"), dock_Geom);     // 单行文本输入框 
lineEdit->setReadOnly(true);                                    // 设置只读

QTextEdit *textEdit = new QTextEdit(tr("Text"), dock_Geom);     // 可编辑多行文本框,
textEdit->textCursor().movePosition(QTextCursor::End);          // 垂直滚动条自动跟踪到最底部
textEdit->setWordWrapMode(QTextOption::NoWrap);                 // 添加水平滚动条
textEdit->setReadOnly(true);                                    // 设置只读
textEdit->append("第1行");                                      // 换行显示
textEdit->append("第2行");

// 布局
label->move(50, 50);        // 设定位置
button->move(200, 50);
lineEdit->move(50, 100);
textEdit->move(50, 150); 
textEdit->resize(200, 100);

Qlabel

QLabel提供了一个文本或图像的显示,没有提供用户交互功能。
纯文本: 使用setText()设置一个QString
富文本: 使用setText()设置一个富文本的QString
图像: 使用setPixmap()设置一个图像
动画: 使用setMovie()设置一个动画
数字: 使用setNum()设置int或double,并转换为纯文本。

文本对齐方式

默认的标签文本对齐方式为:左对齐、垂直居中,可以通过setAlignment来设置,
如居中对齐:setAlignment(Qt::AlignCenter);

文本自动换行

setWordWrap(true);
当文本过长时,可设置自动换行。要注意,如果是英文单词换行,有空格才能换行。如“abcdefghijklmn”与“abcdefg
hijklmn”,前者不换行,后者过长时会在空格处自动换行。

显示数字

pLabel->setNum(0.1);

显示图像

QPixmap *pixmap= new QPixmap (“../Images/pic.png”);
pLabel->setPixmap(pixmap);
pLabel->setFixedSize(100, 100);
pLabel->setScaledContents(true);

显示动画

QMovie *pMovie = new QMovie(“../Images/movie.avi”);
pLabel->setMovie(pMovie);
pLabel->setFixedSize(135, 200);
pLabel->setScaledContents(true);
pMovie->start();

QpushButton

QPushButton是一个按键类。
class Q_GUI_EXPORT QPushButton : public QAbstractButton
{
Q_OBJECT

}

构造函数:

QPushButton ( QWidget * parent = 0 ) QPushButton ( const
QString & text, QWidget * parent = 0 ) QPushButton ( const QIcon &
icon, const QString & text, QWidget * parent = 0 )

常用属性和方法:

(1) QString text () const:返回按键上的文字;
(2) void setText ( const QString & text ):设置按键上的文字;
(3) bool autoDefault() const;:autoDefault属性,它会影响按键的外观;
(4) void setAutoDefault(bool);:设置autoDefault属性;
(5) bool isDefault() const;:default属性,仅在Dialog中此属性有效;
(6) void setDefault(bool);:设置default属性;
(7) void setFlat(bool);:设置FLAT属性
(8) bool isFlat() const;:设置按键的外观是否有突起。

QLineEdit

QLineEdit是一个单行文本输入框,允许用户输入和编辑单行纯文本,提供了很多有用的编辑功能,包括:撤消和重做、剪切和粘贴、以及拖放。常用于输入密码,如改变输入框的echoMode()并设置为 “只写”。可用maxLength()限制文本的长度。
void setText() 设置文本
QString text() 获取文本。
void setSelection()或selectAll() 选中文本,选中的文本可以被cut()、copy()和paste(),
void setAlignment() 设置文本的对齐方式。
QString displayText() 返回显示的文本。
void setMaxLength(int) 设置允许的最大长度,多余部分截断
void setReadOnly(bool) 设置是否只读

QTextEdit

QTextEdit是一个多行文本输入框,能显示多行文本内容,当文本内容超出控件显示范围时,可以显示水平和垂直滚动条。

设置多行文本框的内容:
textEdit->setPlainText(“12345\nabcdef”);

获取多行文本框的内容:

QString str = textEdit->toPlainText();

垂直滚动条自动跟踪到最底部

textEdit->textCursor().movePosition(QTextCursor::End);

添加水平滚动条

textEdit->setWordWrapMode(QTextOption::NoWrap);

设置只读

textEdit->setReadOnly(true);

换行显示

textEdit->append(“换行”);

相关文章