Qt:WindowFlags

这篇博客详细介绍了Qt库中WindowFlags的各种类型及其应用场景,包括Qt::Widget、Qt::Window、Qt::Dialog等,同时提供了如何在实际代码中设置和使用这些窗口标志的示例,帮助开发者更好地理解和控制Qt窗口的外观和行为。
摘要由CSDN通过智能技术生成

Qt:WindowFlags

#include "fileinfo.h"
#include "ui_fileinfo.h"
#include <QFileDialog>
#include <QDateTime>

FileInfo::FileInfo(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::FileInfo)
{
    ui->setupUi(this);
    setWindowTitle("文件信息");
}

FileInfo::~FileInfo()
{
    delete ui;
}

void FileInfo::getFileInfo(QString &fileName)
{
    QFileInfo info(fileName);

    qint64 size = info.size();              //文件大小
    QDateTime createTime = info.created();  //文件创建时间
    QDateTime lastMTime = info.lastModified();//文件最近修改时间
    QDateTime lastRTime = info.lastRead();  //文件最近访问时间

    //文件的属性信息
    bool bIsDir = info.isDir();
    bool bIsFile = info.isFile();
    bool bIsSymLink = info.isSymLink();
    bool bIsHidden = info.isHidden();
    bool bIsReadable = info.isReadable();
    bool bIsWritable = info.isWritable();
    bool bIsExcutable = info.isExecutable();

    ui->fileSizeLineEdit->setText(QString::number(size));
    ui->fileCreateLineEdit->setText(createTime.toString());
    ui->fileModifyLineEdit->setText(lastMTime.toString());
    ui->fileReadLineEdit->setText(lastRTime.toString());

    ui->isDirCheckBox->setChecked(bIsDir);
    ui->isFileCheckBox->setChecked(bIsFile);
    ui->isSymLinkCheckBox->setChecked(bIsSymLink);
    ui->isHiddenCheckBox->setChecked(bIsHidden);
    ui->isWritableCheckBox->setChecked(bIsWritable);
    ui->isReadableCheckBox->setChecked(bIsReadable);
    ui->isExecutableCheckBox->setChecked(bIsExcutable);
}

void FileInfo::on_browseFileBtn_clicked()
{
//    QString fileName = QFileDialog::getOpenFileName(this,
//                                                    "打开文件",
//                                                    ".",
//                                                    "files(*)");
    QString path = QFileDialog::getExistingDirectory(this,
                                                     "选择目录",
                                                     ".");
    ui->fileNameLineEdit->setText(path);
    getFileInfo(path);
}

#ifndef FILEINFO_H
#define FILEINFO_H

#include <QWidget>

namespace Ui {
class FileInfo;
}

class FileInfo : public QWidget
{
    Q_OBJECT

public:
    explicit FileInfo(QWidget *parent = 0);
    ~FileInfo();
    void getFileInfo(QString& fileName);

private slots:
    void on_browseFileBtn_clicked();

private:
    Ui::FileInfo *ui;
};

#endif // FILEINFO_H

#include "fileinfo.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    FileInfo w;
    w.show();

    return a.exec();
}

Qt:WindowFlags释义
Qt::WidgetQWidget构造函数的默认值,如果新的窗口部件没有父窗口部件,则它是一个独立的窗口,否则就是一个子窗口部件。另请参见Qt :: Window和Qt :: SubWindow。
Qt::Window无论是否有父窗口部件,新窗口部件都是一个窗口,通常有一个窗口边框和一个标题栏 。请注意,如果部件没有父控件,则无法取消设置此标记(即如果存在父控件,则可以取消此标记,否则,必须存在此标记用以标识此控件是个独立窗口)。
Qt:: Dialog新窗口部件是一个对话框,它是QDialog构造函数的默认值。如果要将其用作模态对话框,则应从另一个窗口启动它,或者如果有父窗口,则与QWidget::windowModality属性一起使用。如果将其设置为模态,则对话框将阻止应用程序中的其他顶级窗口获取任何输入。我们将具有父级的顶级窗口称为辅助窗口。
Qt::Sheet新窗口部件是一个Macintosh表单(sheet) 。由于使用工作表意味着窗口模态,推荐的方法是使用QWidget :: setWindowModality()或QDialog :: open()。
Qt:: Drawer新窗口部件是一个Macintosh抽屉(drawer)
Qt::Popup新窗口部件是一个弹出式顶层窗口
Qt::Tool新窗口部件是一个工具(tool)窗口,它通常是一个用于显示工具按钮的小窗口。如果一个工具窗口有父窗口部件,则它将显示在父窗口的部件上面,否则相当于使用了Qt::WindowStaysOnTopHin
Qt::ToolTip表示窗口小部件是工具提示。 这在内部用于实现工具提示,没有标题栏和窗口边框。
Qt:: Desktop新窗口部件是桌面,它是QDesktopWidget构造函数的默认值
Qt::SplashScreen新窗口部件是一个欢迎窗口,它是SplashScreen构造函数的默认值。
Qt::SubWindow新窗口部件是一个子窗口,而无论窗口部件是否有父窗口部件。此外,Qt还定义了一些控制窗口外观的窗口提示(这些窗口提示仅对顶层窗口有效)
Qt::ForeignWindow指示此窗口对象是表示由另一个进程创建的本机平台窗口或手动使用本机代码的句柄。
Qt::CoverWindow表示该窗口代表一个封面窗口,例如,当应用程序在BlackBerry平台上最小化时显示。
Qt::MSWindowFiredSizeDialogHint为Windows系统上的窗口装饰一个窄的对话框边框,通常这个提示用于固定大小的对话框
Qt::MSWindowOwnDC为Windows系统上的窗口添加自身的显示上下文菜单
Qt::BypassWindowManagerHint此标志可用于向平台插件指示应禁用“所有”窗口管理器协议。 此标志的行为会有所不同,具体取决于运行应用程序的操作系统以及正在运行的窗口管理器。 该标志可用于获取没有配置集的本机窗口。
Qt::X11BypassWindowManagerHint完全忽视窗口管理器,它的作用是产生一个根本不被管理的无窗口边框的窗口(此时,用户无法使用键盘进行输入,除非手动调用QWidget::activateWindow()函数)
Qt::FramelessWindowHint:产生一个无窗口边框的窗口,此时用户无法移动该窗口和改变它的大小
Qt::NoDropShadowWindowHint在支持平台上禁用窗口投影
Qt::CustomizeWindowHint关闭默认的窗口标题提示
Qt::WindowTitleHint为窗口装饰一个标题栏
Qt::WindowSystemMenuHint为窗口添加一个窗口系统系统菜单,并尽可能地添加一个关闭按钮
Qt::WindowMinimizeButtonHint为窗口添加一个“最小化”按钮
Qt::WindowMaximizeButtonHint为窗口添加一个“最大化”按钮
Qt::WindowCloseButtonHint为窗口添加一个“关闭”按钮
Qt::WindowMinMaxButtonHint为窗口添加一个“最小化”按钮 和一个“最大化”按钮
Qt::WindowContextHelpButtonHint为窗口添加一个“上下文帮助”按钮
Qt::WindowStaysOnTopHint告知窗口系统,该窗口应该停留在所有其他窗口的上面
Qt::WindowType_Mask一个用于提示窗口标识的窗口类型部分的掩码
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Respect@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值