- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本节介绍一些常用的控件,是在“图像处理自编软件”中用到的几种,包括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提供了一个文本或图像的显示,没有提供用户交互功能。
纯文本: 使用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是一个按键类。
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是一个单行文本输入框,允许用户输入和编辑单行纯文本,提供了很多有用的编辑功能,包括:撤消和重做、剪切和粘贴、以及拖放。常用于输入密码,如改变输入框的echoMode()并设置为 “只写”。可用maxLength()限制文本的长度。
void setText() 设置文本
QString text() 获取文本。
void setSelection()或selectAll() 选中文本,选中的文本可以被cut()、copy()和paste(),
void setAlignment() 设置文本的对齐方式。
QString displayText() 返回显示的文本。
void setMaxLength(int) 设置允许的最大长度,多余部分截断
void setReadOnly(bool) 设置是否只读
QTextEdit是一个多行文本输入框,能显示多行文本内容,当文本内容超出控件显示范围时,可以显示水平和垂直滚动条。
设置多行文本框的内容:
textEdit->setPlainText(“12345\nabcdef”);
获取多行文本框的内容:
QString str = textEdit->toPlainText();
垂直滚动条自动跟踪到最底部
textEdit->textCursor().movePosition(QTextCursor::End);
添加水平滚动条
textEdit->setWordWrapMode(QTextOption::NoWrap);
设置只读
textEdit->setReadOnly(true);
换行显示
textEdit->append(“换行”);
我在配置小部件上有多个 QLineEdit 小部件。 当配置文本更改时,我想存储更新后的值(其中有几个,所以我不想在最后的一个函数调用中传递它们)。 我正在考虑将它们连接到一个插槽或通过 QSigna
我有一个 QLineEdit我已经将图像设置为 QStackedWidget .现在我想更改 QLineEdit 中文本的字体颜色.怎么做? QLineEdit *line1 = new QLineE
我正在尝试编写一个简单的 Qt 程序,该程序在 QLineEdit 中获取文本,并在按下返回键时将其附加到 QTextEdit 对象中。 这是我的程序的代码: #include #include
我有一个QLineEdit,其中包含文本“搜索内容...”。 我希望当 QLineEdit 获得焦点或当光标进入文本内部时,文本被设置为空字符串。 [这有效:我没问题,我使用了 QLineEdit 的
如何在QMenu中将QLineEdit用作菜单项?有解决方案吗? 只是要做这样的事情(请看头像下方的编辑框): 最佳答案 您可以使用QWidgetAction来包含您的QLineEdit。它继承了QA
我引入了一个特定的自定义快捷键,允许从当前文本光标位置开始删除 QLineEdit 中接下来的 10 个字符。但我想让这个不可撤销。不幸的是,QLineEdit 不提供 QTextDocument 或
我有一个带有 QDoubleValidator 的 QLineEdit,调用 QDoubleValidator::setRange 不会验证 QLineEdit top() ) {
如何在 QLineEdit 上设置输入验证器以将其限制为有效的 IP 地址?即 x.x.x.x,其中 x 必须在 0 到 255 之间。并且 x 不能为空 最佳答案 您正在寻找QRegExp和 QVa
如果用户在 QLineEdit 中键入文本并离开 QLineEdit 输入字段,我想执行一些操作。 关于focusInEvent 的解释不多。我正在使用 Python 和 PySide2。但所有信息都
我正在使用 Qt 样式表创建一个自定义 QLineEdit,当它有焦点时,它周围有一个浅蓝色边框。这是样式表: this->setStyleSheet(" QLineEdit { "
我正在尝试制作一个带有行编辑和按钮的小部件。如果单击该按钮,它应该打开一个文件对话框,我可以在其中选择一个文件。文件名应该显示在行编辑中。这是我到目前为止得到的: #include "widget_o
我正在 python 上使用 PyQt5 制作一个登录 GUI 程序,在这个程序中我在此布局上创建了一个键盘。我的问题是,我无法使用我所做的键盘在 QLineEdit 上插入文本。我应该做什么来修复它
我想在某些条件下,不可能编辑 QLineEdit 小部件。理想情况下,它看起来像: QLE_On = QCheckBox("Non-editable?") generic = QLineEdit()
我正在从行编辑中获取用户输入并将其显示在 QMessageBox 上,但由于某种原因它不会显示。我想也许我根本没有从 QLineEdit 获取输入,但是当我尝试在终端上打印它时(顺便说一句,它仍然不会
是否可以在输入时使用 QValidator 设置 QLineEdit 的文本?如果是这样,有人可以插入如何实现这一目标的正确方向吗?谢谢。 最佳答案 您只需覆盖验证方法: from PyQt5 imp
我使用pyqt开发一个对话框,和一个LineEidt有些像下面这样,但我无法从 lineEdit1 获取任何内容: lineEdit1 = QtGui.QLineEdit() lineEdit1.se
我有一个(希望如此)简单的问题: 我创建了一个具有表单 (form.ui) 的新类。在这种形式中,我想构建某些 lineEdits。我想通过编码而不是拖放来做到这一点。我可以想到两种不同的方法来做到这
我想让 QLineEdit 看起来像 QLabel 如果它处于非事件状态则带有粗体文本,如果它像 QLineEdit 如果处于事件状态则具有正常粗细。在我的理解中,“事件”= 当显示文本光标并且用户可
QLineEdit 在 .clear() 或 .setText() 方法上触发信号。因此,每次使用这些方法来阻止 LineEdit 发出信号时,我都需要 .blockSignals(True) 然后是
我使用 QT Designer 绘制了一个 UI,但发现没有参数可让我将 QLineEdit 输入设置为大写。 在网上搜索了一些之后,我只看到了极少数满足我需要的结果,但是都是用 Qt 编码的。例如,
我是一名优秀的程序员,十分优秀!