窗口部件QWidget

简介:

Qt设计器 designer &提供以下四种GUI窗口部件编辑模式 :
        Widget模式:修改GUI部件以及修改其属性外观
        信号和槽编辑模式
        Tab编辑模式
        伙伴模式:只有QLabel才有Buddy,只有QLabel才有快捷键

QWidget类是所有用户界面对象的基类。
窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。

QDialog是最普通的顶级窗口。不被嵌入到一个父窗口部件的窗口部件被叫做顶级窗口部件。通常情况下,顶级窗口部件是有框架和标题栏的窗口(尽管如果使用了一定的窗口部件标记,创建顶级窗口部件时也可能没有这些装饰。)在Qt中,QMainWindow和和不同的QDialog的子类是最普通的顶级窗口。

一个没有父窗口部件的窗口部件一直是顶级窗口部件。

非顶级窗口部件是子窗口部件。它们是它们的父窗口部件中的子窗口。你通常不能在视觉角度从它们的父窗口部件中辨别一个子窗口部件。在Qt中的绝大多数其它窗口部件仅仅作为子窗口部件才是有用的。(当然把一个按钮作为或者叫做顶级窗口部件也是可能的,但绝大多数人喜欢把他们的按钮放到其它按钮当中,比如QDialog。)

QWidget有很多成员函数,但是它们中的一些有少量的直接功能:例如,QWidget有一个字体属性,但是它自己从来不用。有很多继承它的子类提供了实际的功能,比如QPushButton、QListBox和QTabDialog等等。

查找文件

void Widget::on_FindFileBtn_clicked()
{
    bool ok;
    QString text=QInputDialog::getText(this,tr("文件名"),tr("请输入你要查找的文件名"),QLineEdit::Normal,
                                      tr("*"), &ok);
    QString path=QFileDialog::getExistingDirectory(this,
                                                  tr("查找路径"),
                                                  QDir::currentPath(),
                                                  QFileDialog::ShowDirsOnly);
    if(ok && !text.isEmpty() && !path.isEmpty())
    {
        QDir dir=QDir(path);
        QStringList files=dir.entryList(QStringList(text),QDir::Files|QDir::NoSymLinks);
        for(int i=0;i<files.size();i++)
        {
            QString strFilePath=dir.absoluteFilePath(files[i]);
            QFile file(strFilePath);
            QFileInfo fileInfo(file);
            qint64 size=fileInfo.size();
            QDateTime time=fileInfo.created();
            QTableWidgetItem *fileNameItem=new QTableWidgetItem(strFilePath);
            fileNameItem->setFlags(Qt::ItemIsEnabled);
            QTableWidgetItem *sizeItem=new QTableWidgetItem(tr("%1 KB").arg(int((size+1023)/1024)));
            sizeItem->setFlags(Qt::ItemIsEnabled);
            QTableWidgetItem *timeItem=new QTableWidgetItem(time.toString(tr("yyyy-MM-dd hh:mm")));
            timeItem->setFlags(Qt::ItemIsEnabled);
            int row=ui->tableWidget->rowCount();
            ui->tableWidget->insertRow(row);
            ui->tableWidget->setItem(row,0,fileNameItem);
            ui->tableWidget->setItem(row,1,sizeItem);
            ui->tableWidget->setItem(row,2,timeItem);
        }
    }
}

本文转自feisky博客园博客,原文链接:http://www.cnblogs.com/feisky/archive/2010/04/08/1707436.html,如需转载请自行联系原作者


相关文章
|
11月前
|
存储 编解码 Cloud Native
C++ Qt关于多屏幕窗口处理
C++ Qt关于多屏幕窗口处理
|
5月前
Qt6学习笔记三(QMainWindow、菜单栏、工具栏、状态栏、铆接部件、核心部件)
Qt6学习笔记三(QMainWindow、菜单栏、工具栏、状态栏、铆接部件、核心部件)
141 0
|
2月前
|
编解码 开发框架
【Qt 学习笔记】Qt窗口 | Qt窗口介绍 | QMainwindow类及各组件介绍
【Qt 学习笔记】Qt窗口 | Qt窗口介绍 | QMainwindow类及各组件介绍
136 3
关于 Qt场景QGraphicsScene中,添加QWidget窗口,QWidget窗口无法捕捉mouseReleaseEvent松开消息 的解决方法
关于 Qt场景QGraphicsScene中,添加QWidget窗口,QWidget窗口无法捕捉mouseReleaseEvent松开消息 的解决方法
关于 Qt场景QGraphicsScene中,添加QWidget窗口,QWidget窗口无法捕捉mouseReleaseEvent松开消息 的解决方法
QT软件开发: QWidget窗口绘制圆角
QT软件开发: QWidget窗口绘制圆角
814 0
QT软件开发: QWidget窗口绘制圆角
PyQt5 技术篇-QWidget、QDialog程序窗口关闭closeEvent()触发事件方法重写
PyQt5 技术篇-QWidget、QDialog程序窗口关闭closeEvent()触发事件方法重写
1429 0
PyQt5 技术篇-QWidget、QDialog程序窗口关闭closeEvent()触发事件方法重写
Qt自定义界面类并提升(提升的窗口部件)
Qt自定义界面类并提升(提升的窗口部件)
1334 0
Qt自定义界面类并提升(提升的窗口部件)
QT软件开发:解决隐藏QWidget标题栏后窗体无法移动问题
QT软件开发:解决隐藏QWidget标题栏后窗体无法移动问题
386 0
Qt 控件随窗口缩放
在Qt的界面设计中,我们有时候希望窗口在最大化的时候,上面的控件也跟着缩放,那么我们就需要调整控件的SizePolicy属性,关于这个属性的讲解请参见我之前的博客Qt SizePolicy 属性,由于窗口的拉伸,会导致控件的拉伸,有时候我们只需要某一个或者某几个控件被拉伸,那么我们可以将需要拉伸的控件的Horizontal Policy设为Minimum,表示可以放大不能缩小,然后将不希望拉伸的设为Fixed,设置好了之后,我们在空白处点击鼠标右键,选择Lay Out,选择其中的Lay Out in a Grid,如果有不合理的地方继续进行调整即可。
3618 0