当前位置:
首页 >
qt中使窗口的大小随窗口的内容大小进行调整
发布时间:2024/9/27
41
豆豆
生活随笔
收集整理的这篇文章主要介绍了
qt中使窗口的大小随窗口的内容大小进行调整
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
提要
窗口用于显示文本信息,当窗口的文本信息变长,原有窗口的大小不足以显示文本信息。这时就需要一个能够根据窗口要显示的文本信息的长度来调整窗口大小的窗口。
示例
效果图:
窗口内容少的时候提示窗口大小,当窗口要显示的内容变多,提示窗口的大小就会变大。
在窗口过小的时,发送调整窗口大小的信号,提示窗口收到信号后根据不同的情况做出调整窗口大小。
附上代码:
提示窗口的ui文件的截图
tooltipform.h
#ifndef TOOLTIPFORM_H #define TOOLTIPFORM_H#include <QWidget>/**********类功能描述:提示框***********/ namespace Ui { class ToolTipForm; }class ToolTipForm : public QWidget {Q_OBJECTpublic:explicit ToolTipForm(QWidget *parent = nullptr);~ToolTipForm();void setToolTipInfo(QString &strTip);//设置窗口提示信息void adjustWidSize(int w,int h);//调整窗口的大小w:宽,h:高 public slots:void onChangedSize(int count);//接收信号后改变窗口大小count单元格数目 private:Ui::ToolTipForm *ui; };#endif // TOOLTIPFORM_Htooltipform.cpp
#include "tooltipform.h" #include "ui_tooltipform.h"ToolTipForm::ToolTipForm(QWidget *parent) :QWidget(parent),ui(new Ui::ToolTipForm) {ui->setupUi(this);//设置窗口为圆角必须设置背景透明和无边框setAttribute(Qt::WA_TranslucentBackground);//设置背景透明setWindowFlags(Qt::WindowTransparentForInput | Qt::ToolTip | Qt::FramelessWindowHint);//窗口仅用于输出,不接收任何输入事件 }ToolTipForm::~ToolTipForm() {delete ui; }void ToolTipForm::setToolTipInfo(QString &strTip) {ui->label->setText(strTip); }void ToolTipForm::adjustWidSize(int w, int h) {resize(w,h);ui->frame->resize(w,h);ui->label->resize(w,h); }void ToolTipForm::onChangedSize(int count) {if (count >= 6 && count <= 8) {adjustWidSize(200,200);}else if (count >8 && count <=12) {adjustWidSize(200,300);}else if (count > 12 && count <=16) {adjustWidSize(200,400);}else {adjustWidSize(200,500);} }以上只是窗口根据显示内容多少,做出调整的一种思路,仅供参考。
总结
以上是生活随笔为你收集整理的qt中使窗口的大小随窗口的内容大小进行调整的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: mysql索引和数据完整性答案_第5章M
- 下一篇: c语言几种排序方法的比较,基于C语言的几