2301_79575952 2024-07-22 01:33 采纳率: 0%
浏览 29
已结题

Qt4代码实现下面的界面

img


Qt4代码实现上面的界面,并将实现的.cpp和.h分开,图标不用实现

  • 写回答

31条回答 默认 最新

  • 杨同学* 2024-07-22 10:16
    关注
    获得7.50元问题酬金

    该回答结合ChatGPT4o及杨同学*共同作答, 如有帮助,还请采纳。
    要在Qt4中实现类似您提供的界面,我们需要创建一个主窗口,其中包含菜单栏、按钮、单选按钮、文本框和一个表格视图。为了组织代码,我们将实现分为两个文件:一个头文件(mainwindow.h)和一个源文件(mainwindow.cpp)。

    mainwindow.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include <QPushButton>
    #include <QRadioButton>
    #include <QLineEdit>
    #include <QTableWidget>
    #include <QMenuBar>
    #include <QAction>
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        MainWindow(QWidget *parent = nullptr);
        ~MainWindow();
    
    private:
        QPushButton *btnImportFolder;
        QPushButton *btnImportFile;
        QPushButton *btnStartConversion;
        QPushButton *btnAbout;
        QPushButton *btnExit;
        QRadioButton *radioOriginalLocation;
        QRadioButton *radioCustomLocation;
        QLineEdit *lineEditCustomLocation;
        QPushButton *btnSelect;
        QTableWidget *tableWidget;
        QMenuBar *menuBar;
        QMenu *menu;
        QAction *actionImportFolder;
        QAction *actionImportFile;
        QAction *actionStartConversion;
        QAction *actionAbout;
        QAction *actionExit;
    };
    
    #endif // MAINWINDOW_H
    

    mainwindow.cpp

    #include "mainwindow.h"
    #include <QVBoxLayout>
    #include <QHBoxLayout>
    #include <QHeaderView>
    #include <QMenuBar>
    
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
    {
        // Create Widgets
        btnImportFolder = new QPushButton("导入文件夹");
        btnImportFile = new QPushButton("导入文件");
        btnStartConversion = new QPushButton("开始转换");
        btnAbout = new QPushButton("关于作者");
        btnExit = new QPushButton("退出程序");
    
        radioOriginalLocation = new QRadioButton("原位置");
        radioCustomLocation = new QRadioButton("自定义位置");
        lineEditCustomLocation = new QLineEdit;
        btnSelect = new QPushButton("选择");
    
        tableWidget = new QTableWidget;
        tableWidget->setColumnCount(2);
        tableWidget->setHorizontalHeaderLabels(QStringList() << "序号" << "文件路径");
        tableWidget->horizontalHeader()->setStretchLastSection(true);
    
        // Layout Setup
        QWidget *centralWidget = new QWidget(this);
        QVBoxLayout *mainLayout = new QVBoxLayout(centralWidget);
        QHBoxLayout *buttonLayout = new QHBoxLayout;
        QHBoxLayout *radioLayout = new QHBoxLayout;
        QHBoxLayout *pathLayout = new QHBoxLayout;
    
        buttonLayout->addWidget(btnImportFolder);
        buttonLayout->addWidget(btnImportFile);
        buttonLayout->addWidget(btnStartConversion);
        buttonLayout->addWidget(btnAbout);
        buttonLayout->addWidget(btnExit);
    
        radioLayout->addWidget(radioOriginalLocation);
        radioLayout->addWidget(radioCustomLocation);
        radioLayout->addWidget(lineEditCustomLocation);
        radioLayout->addWidget(btnSelect);
    
        mainLayout->addLayout(buttonLayout);
        mainLayout->addLayout(radioLayout);
        mainLayout->addWidget(tableWidget);
    
        setCentralWidget(centralWidget);
    
        // Menu Bar Setup
        menuBar = new QMenuBar(this);
        menu = new QMenu("菜单(M)", this);
        actionImportFolder = new QAction("导入文件夹", this);
        actionImportFile = new QAction("导入文件", this);
        actionStartConversion = new QAction("开始转换", this);
        actionAbout = new QAction("关于作者", this);
        actionExit = new QAction("退出程序", this);
    
        menu->addAction(actionImportFolder);
        menu->addAction(actionImportFile);
        menu->addAction(actionStartConversion);
        menu->addAction(actionAbout);
        menu->addAction(actionExit);
        menuBar->addMenu(menu);
        setMenuBar(menuBar);
    
        // Connect actions (if necessary)
        connect(actionExit, &QAction::triggered, this, &QMainWindow::close);
    }
    
    MainWindow::~MainWindow()
    {
    }
    

    main.cpp

    #include <QApplication>
    #include "mainwindow.h"
    
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
    
        MainWindow window;
        window.show();
    
        return app.exec();
    }
    

    说明

    1. 菜单栏

      • 创建一个菜单栏并添加菜单项,通过QAction进行管理。
    2. 按钮和单选按钮

      • 使用QPushButtonQRadioButton创建所需的按钮和单选按钮。
    3. 文本框和表格视图

      • 使用QLineEdit创建文本输入框。
      • 使用QTableWidget创建表格视图,并设置列数和表头。
    4. 布局

      • 使用QVBoxLayoutQHBoxLayout进行布局管理,确保界面元素有序排列。
    5. 连接信号和槽(可选)

      • 连接按钮和菜单项的点击事件到相应的槽函数,以实现功能(如退出程序)。

    这个代码结构创建了一个基本的Qt4应用程序,展示了如何创建和布局控件,以实现您所展示的界面。可以根据需要进一步扩展功能和实现具体的业务逻辑。

    评论

报告相同问题?

问题事件

  • 系统已结题 7月30日
  • 创建了问题 7月22日