QSize MyLineEdit::sizeHint() const
return QSize(fontMetrics().horizontalAdvance(text()) + 35, 30);
connect(this, &HPFolderLineEdit::textEdited, [ = ](){ setFixedSize(sizeHint());});QSize HPFolderLineEdit::sizeHint() const{ return QSize(fontMetrics().horizontalAdvance(text()) + 35, 30);}
之前用
Qt
做了个截图工具,最值得一写的就是在图片中添加
文字
时,如何让
QT
ext
Edit
自适应文本的宽高
值得参考的是这篇博客:https://blog.csdn.net/kaida1234/article/details/80094175
但也只是做到了
宽度
自适应,高度并没有这里的核心函数是void
QT
extDocument::adjustSize(),它他可以跟随文本的变动调整大小,然后通QSizeF
QT
extDocument::size()可以获取准确的文本尺寸,接着根据此尺寸调整编辑框的宽高,从而
当你的字体太大的时候需要QLable自适应调整QLable的高度,adjustSize就可以满足此要求,其他的控件也一样,比如QCheckBox,Q
Line
Edit
等控制自适应字体大小都可以使用adjustSize
lable->adjustSize() //自动调整label的高度,
需要注意的是这个不是一次初始化后就可以用,而是在你更改字体后执行。
图 1 单行文本输入框
实际开发中,我们经常用到 Q
Line
Edit
输入框,比如接收用户输入的个人信息、账户信息、角色名称等,就可以用 Q
Line
Edit
实现。
Q
Line
Edit
单行输入框的创建
每个单行输入框都是 Q
Line
Edit
类的一个实例对象,Q
Line
Edit
类提供有两个构造函数,分别是:
Q
Line
Edit
(QWidget
要自定义Q
Line
Edit
()的
宽度
,你可以使用setFixedWidth()函数来设置它的固定
宽度
,或者使用setMinimumWidth()和setMaximumWidth()函数来设置它的最小和最大
宽度
。例如,下面是一个将Q
Line
Edit
()设置为固定
宽度
的示例代码:
```python
from Py
Qt5
.
Qt
Widgets import QApplication, QMainWindow, Q
Line
Edit
class MyWidget(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.
line
edit
= Q
Line
Edit
(self)
self.
line
edit
.setFixedWidth(200) # 设置固定
宽度
为200
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
如果你想设置最小和最大
宽度
,你可以使用setMinimumWidth()和setMaximumWidth()函数,如下所示:
```python
self.
line
edit
.setMinimumWidth(100) # 设置最小
宽度
为100
self.
line
edit
.setMaximumWidth(300) # 设置最大
宽度
为300
希望这可以帮助你!