mirror of
https://github.com/crystalidea/qt6windows7.git
synced 2025-07-04 16:25:27 +08:00
qt 6.5.1 original
This commit is contained in:
37
examples/widgets/dialogs/tabdialog/CMakeLists.txt
Normal file
37
examples/widgets/dialogs/tabdialog/CMakeLists.txt
Normal file
@ -0,0 +1,37 @@
|
||||
# Copyright (C) 2022 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(tabdialog LANGUAGES CXX)
|
||||
|
||||
if(NOT DEFINED INSTALL_EXAMPLESDIR)
|
||||
set(INSTALL_EXAMPLESDIR "examples")
|
||||
endif()
|
||||
|
||||
set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/dialogs/tabdialog")
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
|
||||
|
||||
qt_standard_project_setup()
|
||||
|
||||
qt_add_executable(tabdialog
|
||||
main.cpp
|
||||
tabdialog.cpp tabdialog.h
|
||||
)
|
||||
|
||||
set_target_properties(tabdialog PROPERTIES
|
||||
WIN32_EXECUTABLE TRUE
|
||||
MACOSX_BUNDLE TRUE
|
||||
)
|
||||
|
||||
target_link_libraries(tabdialog PRIVATE
|
||||
Qt6::Core
|
||||
Qt6::Gui
|
||||
Qt6::Widgets
|
||||
)
|
||||
|
||||
install(TARGETS tabdialog
|
||||
RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
|
||||
BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
|
||||
LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
|
||||
)
|
22
examples/widgets/dialogs/tabdialog/main.cpp
Normal file
22
examples/widgets/dialogs/tabdialog/main.cpp
Normal file
@ -0,0 +1,22 @@
|
||||
// Copyright (C) 2016 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
#include "tabdialog.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication app(argc, argv);
|
||||
QString fileName;
|
||||
|
||||
if (argc >= 2)
|
||||
fileName = argv[1];
|
||||
else
|
||||
fileName = ".";
|
||||
|
||||
TabDialog tabdialog(fileName);
|
||||
tabdialog.show();
|
||||
|
||||
return app.exec();
|
||||
}
|
158
examples/widgets/dialogs/tabdialog/tabdialog.cpp
Normal file
158
examples/widgets/dialogs/tabdialog/tabdialog.cpp
Normal file
@ -0,0 +1,158 @@
|
||||
// Copyright (C) 2016 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||
|
||||
#include <QtWidgets>
|
||||
|
||||
#include "tabdialog.h"
|
||||
|
||||
//! [0]
|
||||
TabDialog::TabDialog(const QString &fileName, QWidget *parent)
|
||||
: QDialog(parent)
|
||||
{
|
||||
QFileInfo fileInfo(fileName);
|
||||
|
||||
tabWidget = new QTabWidget;
|
||||
tabWidget->addTab(new GeneralTab(fileInfo), tr("General"));
|
||||
tabWidget->addTab(new PermissionsTab(fileInfo), tr("Permissions"));
|
||||
tabWidget->addTab(new ApplicationsTab(fileInfo), tr("Applications"));
|
||||
//! [0]
|
||||
|
||||
//! [1] //! [2]
|
||||
buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok
|
||||
//! [1] //! [3]
|
||||
| QDialogButtonBox::Cancel);
|
||||
|
||||
connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
|
||||
connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
|
||||
//! [2] //! [3]
|
||||
|
||||
//! [4]
|
||||
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||
mainLayout->addWidget(tabWidget);
|
||||
mainLayout->addWidget(buttonBox);
|
||||
setLayout(mainLayout);
|
||||
//! [4]
|
||||
|
||||
//! [5]
|
||||
setWindowTitle(tr("Tab Dialog"));
|
||||
}
|
||||
//! [5]
|
||||
|
||||
//! [6]
|
||||
GeneralTab::GeneralTab(const QFileInfo &fileInfo, QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
QLabel *fileNameLabel = new QLabel(tr("File Name:"));
|
||||
QLineEdit *fileNameEdit = new QLineEdit(fileInfo.fileName());
|
||||
|
||||
QLabel *pathLabel = new QLabel(tr("Path:"));
|
||||
QLabel *pathValueLabel = new QLabel(fileInfo.absoluteFilePath());
|
||||
pathValueLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken);
|
||||
|
||||
QLabel *sizeLabel = new QLabel(tr("Size:"));
|
||||
qlonglong size = fileInfo.size()/1024;
|
||||
QLabel *sizeValueLabel = new QLabel(tr("%1 K").arg(size));
|
||||
sizeValueLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken);
|
||||
|
||||
QLabel *lastReadLabel = new QLabel(tr("Last Read:"));
|
||||
QLabel *lastReadValueLabel = new QLabel(fileInfo.lastRead().toString());
|
||||
lastReadValueLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken);
|
||||
|
||||
QLabel *lastModLabel = new QLabel(tr("Last Modified:"));
|
||||
QLabel *lastModValueLabel = new QLabel(fileInfo.lastModified().toString());
|
||||
lastModValueLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken);
|
||||
|
||||
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||
mainLayout->addWidget(fileNameLabel);
|
||||
mainLayout->addWidget(fileNameEdit);
|
||||
mainLayout->addWidget(pathLabel);
|
||||
mainLayout->addWidget(pathValueLabel);
|
||||
mainLayout->addWidget(sizeLabel);
|
||||
mainLayout->addWidget(sizeValueLabel);
|
||||
mainLayout->addWidget(lastReadLabel);
|
||||
mainLayout->addWidget(lastReadValueLabel);
|
||||
mainLayout->addWidget(lastModLabel);
|
||||
mainLayout->addWidget(lastModValueLabel);
|
||||
mainLayout->addStretch(1);
|
||||
setLayout(mainLayout);
|
||||
}
|
||||
//! [6]
|
||||
|
||||
//! [7]
|
||||
PermissionsTab::PermissionsTab(const QFileInfo &fileInfo, QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
QGroupBox *permissionsGroup = new QGroupBox(tr("Permissions"));
|
||||
|
||||
QCheckBox *readable = new QCheckBox(tr("Readable"));
|
||||
if (fileInfo.isReadable())
|
||||
readable->setChecked(true);
|
||||
|
||||
QCheckBox *writable = new QCheckBox(tr("Writable"));
|
||||
if ( fileInfo.isWritable() )
|
||||
writable->setChecked(true);
|
||||
|
||||
QCheckBox *executable = new QCheckBox(tr("Executable"));
|
||||
if ( fileInfo.isExecutable() )
|
||||
executable->setChecked(true);
|
||||
|
||||
QGroupBox *ownerGroup = new QGroupBox(tr("Ownership"));
|
||||
|
||||
QLabel *ownerLabel = new QLabel(tr("Owner"));
|
||||
QLabel *ownerValueLabel = new QLabel(fileInfo.owner());
|
||||
ownerValueLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken);
|
||||
|
||||
QLabel *groupLabel = new QLabel(tr("Group"));
|
||||
QLabel *groupValueLabel = new QLabel(fileInfo.group());
|
||||
groupValueLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken);
|
||||
|
||||
QVBoxLayout *permissionsLayout = new QVBoxLayout;
|
||||
permissionsLayout->addWidget(readable);
|
||||
permissionsLayout->addWidget(writable);
|
||||
permissionsLayout->addWidget(executable);
|
||||
permissionsGroup->setLayout(permissionsLayout);
|
||||
|
||||
QVBoxLayout *ownerLayout = new QVBoxLayout;
|
||||
ownerLayout->addWidget(ownerLabel);
|
||||
ownerLayout->addWidget(ownerValueLabel);
|
||||
ownerLayout->addWidget(groupLabel);
|
||||
ownerLayout->addWidget(groupValueLabel);
|
||||
ownerGroup->setLayout(ownerLayout);
|
||||
|
||||
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||
mainLayout->addWidget(permissionsGroup);
|
||||
mainLayout->addWidget(ownerGroup);
|
||||
mainLayout->addStretch(1);
|
||||
setLayout(mainLayout);
|
||||
}
|
||||
//! [7]
|
||||
|
||||
//! [8]
|
||||
ApplicationsTab::ApplicationsTab(const QFileInfo &fileInfo, QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
QLabel *topLabel = new QLabel(tr("Open with:"));
|
||||
|
||||
QListWidget *applicationsListBox = new QListWidget;
|
||||
QStringList applications;
|
||||
|
||||
for (int i = 1; i <= 30; ++i)
|
||||
applications.append(tr("Application %1").arg(i));
|
||||
applicationsListBox->insertItems(0, applications);
|
||||
|
||||
QCheckBox *alwaysCheckBox;
|
||||
|
||||
if (fileInfo.suffix().isEmpty())
|
||||
alwaysCheckBox = new QCheckBox(tr("Always use this application to "
|
||||
"open this type of file"));
|
||||
else
|
||||
alwaysCheckBox = new QCheckBox(tr("Always use this application to "
|
||||
"open files with the extension '%1'").arg(fileInfo.suffix()));
|
||||
|
||||
QVBoxLayout *layout = new QVBoxLayout;
|
||||
layout->addWidget(topLabel);
|
||||
layout->addWidget(applicationsListBox);
|
||||
layout->addWidget(alwaysCheckBox);
|
||||
setLayout(layout);
|
||||
}
|
||||
//! [8]
|
62
examples/widgets/dialogs/tabdialog/tabdialog.h
Normal file
62
examples/widgets/dialogs/tabdialog/tabdialog.h
Normal file
@ -0,0 +1,62 @@
|
||||
// Copyright (C) 2016 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||
|
||||
#ifndef TABDIALOG_H
|
||||
#define TABDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QDialogButtonBox;
|
||||
class QFileInfo;
|
||||
class QTabWidget;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
//! [0]
|
||||
class GeneralTab : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit GeneralTab(const QFileInfo &fileInfo, QWidget *parent = nullptr);
|
||||
};
|
||||
//! [0]
|
||||
|
||||
|
||||
//! [1]
|
||||
class PermissionsTab : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit PermissionsTab(const QFileInfo &fileInfo, QWidget *parent = nullptr);
|
||||
};
|
||||
//! [1]
|
||||
|
||||
|
||||
//! [2]
|
||||
class ApplicationsTab : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ApplicationsTab(const QFileInfo &fileInfo, QWidget *parent = nullptr);
|
||||
};
|
||||
//! [2]
|
||||
|
||||
|
||||
//! [3]
|
||||
class TabDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit TabDialog(const QString &fileName, QWidget *parent = nullptr);
|
||||
|
||||
private:
|
||||
QTabWidget *tabWidget;
|
||||
QDialogButtonBox *buttonBox;
|
||||
};
|
||||
//! [3]
|
||||
|
||||
#endif
|
10
examples/widgets/dialogs/tabdialog/tabdialog.pro
Normal file
10
examples/widgets/dialogs/tabdialog/tabdialog.pro
Normal file
@ -0,0 +1,10 @@
|
||||
QT += widgets
|
||||
requires(qtConfig(listwidget))
|
||||
|
||||
HEADERS = tabdialog.h
|
||||
SOURCES = main.cpp \
|
||||
tabdialog.cpp
|
||||
|
||||
# install
|
||||
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/dialogs/tabdialog
|
||||
INSTALLS += target
|
Reference in New Issue
Block a user