Qt调用主界面ui

2023-11-01

一、适用情景

在其他类中使用主界面ui,this,控件操作等

二、步骤

首先,子类需要包含主界面的头文件和ui_xx.h文件,声明主界面类
然后使用构造函数把主界面的指针传递给子类
子类头文件:

#ifndef ONEUI_H
#define ONEUI_H

//首先,包含主界面头文件等
#include "mainwindow.h"
#include "ui_mainwindow.h"
class MainWindow;   // 声明类

class oneui
{
public:
    oneui(MainWindow *m_p);//构造函数传递父类指针

    MainWindow *on;//保存父类指针
public:
    void test();

};

#endif // ONEUI_H

子类cpp文件:

#include "oneui.h"
#include <QFileDialog>
#include <QDebug>

//然后,使用构造函数传递父类窗口指针
oneui::oneui(MainWindow *m_p)
{
    on = m_p;
}

//测试函数,作用:在主界面弹出文件选择框,打印出选择文件地址
void oneui::test()
{
    QString strData;
    QString curPash =QDir::currentPath(); //获取当前路径
    QString dlgTitle="选择表格文件";
    //xls和xlsx格式的文件都可以,xlsx兼容xls,注意每一种类型后面要加两个分号
    QString filter="表格文件(*.xls *.xlsx);;xls文件(*.xls);;xlsx文件(*.xlsx);;所有文件(*.*)";
    //创建文件选择对话框
    QStringList fileList = QFileDialog::getOpenFileNames(on,dlgTitle,curPash,filter);
    if(fileList.count()<1)
        return;
    for(int i = 0;i<fileList.count();i++)
    {
        //保存文件地址
        strData = fileList.at(i);
    }
    
    //测试打印和调用父类ui控件
    qDebug()<<strData;
    on->ui->lineEdit->setText("sdawdw");
}



主界面头文件设置ui为公有:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "oneui.h"

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
//设置公有
    Ui::MainWindow *ui;

private slots:
    void on_pushButton_clicked();
};
#endif // MAINWINDOW_H

主界面cpp文件设置:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent),
      ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

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

//测试按钮1
void MainWindow::on_pushButton_clicked()
{
    //构建子类对象,将主界面this传递
    oneui one(this);
    one.test();
}

效果图:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt调用主界面ui 的相关文章

  • Qt中正确的线程方式

    我的图像加载非常耗时 图像很大 并且在加载时也完成了一些操作 我不想阻止应用程序 GUI 我的想法是在另一个线程中加载图像 发出图像已加载的信号 然后用该图像重绘视图 我的做法 void Window loadImage ImageLoad
  • QWidget::showMinimized() 不起作用

    在 Ubuntu 13 04 上 如果使用QWidget showMinimized 为了最小化窗口 我发现通过单击系统任务栏上的应用程序图标恢复它后 调用QWidget showMinimized 无法工作 connect minimum
  • 常量类成员、赋值运算符和 QList

    请确认我是否正确并告诉我是否有更好的解决方案 我了解具有常量成员的对象 例如int const width 无法由编译器隐式创建的合成赋值运算符处理 但是 QList 我想 std list 也是如此 需要一个有效的赋值运算符 因此 当我想
  • Qt 图表和数据可视化小部件

    我已经安装了 Qt 5 7 来尝试 Qt 图表和 Qt 数据可视化 但我在 Qt Designer 和 Qt Creator 中都找不到新的小部件 有什么建议我应该做什么才能让新的小部件出现在设计器中 我今天遇到了完全相同的问题 默认情况下
  • 如何在 Qt simple 上解密/加密某些字符串(例如密码)

    这是我得到的 Qt SDK版本4 6 2 视窗XP 问题 我怎样才能简单地加密和简单地加密QString价值 我需要它能够将一些加密的字符串保存到 INI 文件中 并在重新打开应用程序后将字符串加密为正常的密码字符串值 PS 我正在寻找简单
  • 选择合适的IDE

    您会推荐使用以下哪种 IDE 语言来在 Windows 下开发涉及识别手势并与操作系统交互的项目 我将使用 OpenCV 库来执行图像处理任务 之后 我将使用 win32 API 或 NET 框架与操作系统交互 具体取决于您建议的工具 性能
  • QChart 对大数据集无响应

    我的这段代码适用于高达 1000 的数据大小 现在我用 65536 个点对其进行了测试 series new QLineSeries QList
  • Qt 编译器标志顺序

    我的目标是消除某些类型的编译器警告 我发现可以通过在 pro 文件中添加编译器标志来做到这一点 QMAKE CXXFLAGS Wno unused variable Wno reorder 问题是它们被添加在 Qt 构建系统生成的标志之前
  • 在Qt中,如何正确实现委托?

    我遵循模型 视图 控制器范例 我很确定模型和视图是正确的 但我认为我的代表做错了一些事情 一切都 有效 除了第一次单击控件只是 点亮控件 而第二次单击与之交互之外 这是代表通常的实施方式吗 我的实现需要大量的构造和销毁 由scoped pt
  • 如何重写(重新实现)QFileSystemModel 中的成员函数

    我已经为此苦苦挣扎了一段时间 Qt s QFileSystemModel由于图标获取算法非常糟糕 在获取数百个文件时速度非常慢 我想完全禁用图标 它们被提取到QFileSystemModel data方法不是虚拟的 QFileSystemM
  • 为什么anchors.centerIn不适用于Column元素?

    我有这段 QML 代码 Column spacing units gu 2 anchors fill parent centerIn parent Row spacing units gu 4 Row spacing units gu 4
  • 如何使用bind将成员函数作为函数指针传递?

    我试图将成员函数作为函数指针传递 这样我就不需要依赖单例或全局函数来处理 Qt 5 中的 Qt 消息 据我所知 我的 std function 是正确的类型 它具有正确的签名 并且绑定应该允许我插入隐式this指针 本质上是将成员函数传递为
  • QGraphicsSimpleTextItem“无效使用不完整类型”

    我的代码如下 指针部件 h QGraphicsSimpleTextItem text 指针控件 cpp void PointerWidget placeNumbers float spacing int currentTickNumber
  • MapItemView 在 dataChanged 信号后不会更新

    我正在使用 QMLMapItemView使用 C 的组件QAbstractListModel基于模型 这MapItemView当模型重置时 或者每当添加新项目或删除现有项目时 工作正常 但是 那MapItemView不反映对已添加项目的更改
  • 在另一个中使用 QAbstractListModel

    我在尝试使用 Qt QML 为我的应用程序开发数据模型时遇到问题 我已经用过一个QAbstractListModel能够将海关数据模型从 C 传递到 QML 并且它对于简单模型 例如基于字符串和布尔的模型 来说就像一个魅力 但现在我需要建立
  • PySide6.1 与 matplotlib 3.4 不兼容

    当我只安装PySide6时 GUI程序运行良好 但是一旦我安装了matplotlib及其依赖包 包括pyqt5 则GUI程序将无法运行并输出以下错误消息 This application failed to start because no
  • Qt:关闭期间线程仍在运行时 qthread 被销毁

    我有一堂课 class centralDataPool public QObject Q OBJECT public centralDataPool QObject parent 0 centralDataPool commMonitor
  • 仅当从 Qt 连接时网页返回 HTTP 406 错误

    我有一个测试页面设置http mlecturedownload com test qt php http mlecturedownload com test qt php有以下代码
  • QWebView等待加载

    bool MainWindow waitForLoad QWebView view QEventLoop loopLoad QTimer timer QObject connect view SIGNAL loadFinished bool
  • Qt ObjectName() 必须是唯一的吗?

    如标题所示的简单问题 如果我打电话setObjectName 在一个对象上 它是否必须是唯一的 或者只是因为约定而推荐 我已经子类化了QLabel 并希望自动为创建的对象命名 如果这是一个坏主意 我会找到一些设置随机唯一名称的方法 我实际上

随机推荐

  • SRS服务器搭建以及展现配置说明

    对于企业而言 数字化建设是一项全面的 系统的工程 不仅仅只是部署几套软件 实现办公自动化而已 尤其是大型企业 数字化的建设往往涉及到了服务器 硬件 软件 网络等一系列内容 如门禁系统和人力 认证等系统集成 实现人脸识别 自动打卡等 监控系统
  • 用RedisDesktopManager访问Redis

    先要将我们的Redis设置允许远程连接 打开 redis conf 文件 将 bind 127 0 0 1 注释掉 否则只允许本机访问 将 protected mode yes 改成 no 关闭保护模式 打开 requirepass foo
  • 新手小白必看 Python爬虫学习路线全面指导

    爬虫是大家公认的入门Python最好方式 没有之一 虽然Python有很多应用的方向 但爬虫对于新手小白而言更友好 原理也更简单 几行代码就能实现基本的爬虫 零基础也能快速入门 让新手小白体会更大的成就感 因此小编整理了新手小白必看的Pyt
  • 微信小程序之别踩白块游戏

    微信小程序项目实例 别踩白块游戏 项目成果展示 项目功能具体 核心代码展示 项目成果展示 微信小程序 别踩白块游戏演示 项目功能具体 该项目是一个别踩白块的小游戏 会拥有无限模式 限时模式 极速模式等游戏模式 并且可以记录最高得分和最长时长
  • STM32学习笔记—串口数据的基本收发(基于HAL库)

    在STM32中 串口主要使用的是异步串行通信 由于我现在学习的是HAL库 所以我只留意HAL库里面的有关串口的发送和接受函数 数据的接收和发送主要分阻塞式和非阻塞式 由于阻塞式是通过延时来实现的 也就是说在发送和接收的时候 整个系统都在都停
  • R语言保存EXCEL小技巧

    R语言中将数据框保存为EXCEL的方法 文章目录 前言 一 小tip 前言 创建名为df的数据框 一 小tip 使用readr包和openxlsx包
  • C++ sort函数对class类排序

    sort是stl中一个经常用到的排序函数 可以对数组或类似数组 例如vector 的结构进行排序 默认为升序排序 例如下面的代码对vec进行升序排序 sort vec begin vec end 若想降序排序 则只需加greater即可 s
  • Linux基础网络设置和Samba文件共享服务

    作者 小刘在C站 个人主页 小刘主页 每天分享云计算网络运维课堂笔记 努力不一定有收获 但一定会有收获加油 一起努力 共赴美好人生 夕阳下 是最美的绽放 树高千尺 落叶归根人生不易 人间真情 目录 一 Linux基础网络设置 1 服务突然中
  • BUG :failed with repodata from current_repodata.json, will retry with next repoda

    在anaconda里面再次冲洗进行安装pytorch 时 具体步骤可见安装笔记 报错 failed with repodata from current repodata json will retry with next repoda 应
  • 欧拉定理(降幂)

    欧拉定理 定理 感觉这个定理降幂的时候用的多一点 题1 题面 思路 对于每一个数字ai 出现的次数为 A i C n
  • 基于阿里移动端积木框架Tangram自定义首页卡片

    Tangram 移动端框架介绍点击打开链接 项目背景 公司app首页需要完全做到可配置组合提高运营可维护性 由移动端选择了Tangram作为卡片布局框架 此框架有最大的一个好处是 同一份JSON格式数据渲染出来的界面安卓和IOS风格一直 对
  • Unable to open debugger port (127.0.0.1:50573): java.net.SocketException

    现象 IDEA tomcat启动项目报Unable to open debugger port 127 0 0 1 50573 java net SocketException 的错误 导致无法完成启动 解决方法 1 打开cmd 2 net
  • 摘:为什么老毛桃初始化后有了两个分区?

    为什么老毛桃初始化后有了两个分区 答案 制作出来的启动盘支持uefi启动就要有uefi分区 同时也是为了支持两种启动方式 传统mbr和uefi 提高兼容性 原文 http ask zol com cn x 5938014 html 转载于
  • mmsegmentation中如何输出mask

    在mmaegmentation中默认的输出结果是将mask与原图重叠在一起 有时候我们需要输出只有mask的图 具体修改代码如下 在tools test py中进行如下设置 如果没有标签的测试集中 在 eval参数中设置为None即可 pa
  • c++学习笔记-----this指针、构造函数、析构函数和友元函数

    一 this指针 1 概念理解 说起this指针 我个人的理解就是假如我们生产了同一种型号的两个杯子 当张三要买的时候 我们就用一个工具 this指针 给该杯子底部刻上张三的名字用来识别是张三 当李四要买 我们就给杯子刻上李四的名字 这样虽
  • 自顶向下、逐步求精

    自顶向下 逐步求精 自顶向下 逐步求精是计算机编程里面常用的思路 自顶向下 将大问题分解为各个小问题 再逐步求解 逐步求精 对于每个问题逐次细化 不断完善 例子 就如对一个洗衣机程序 先将他的洗衣这个大问题分为多个小问题 选择 洗衣模式 输
  • 修复Ubuntu18.04与Windows 10双系统丢失grub引导界面

    修复Ubuntu18 04与Windows 10双系统丢失grub引导界面 问题描述 最近因为学习Linux而装了Windows10 ubuntu的双系统 安装后的前几天还一切正常 每次开机grub都会让人性化的让我选择想要进入的系统 好景
  • IOS开发 返回到指定的视图控制器

    for UIViewController controller in self navigationController viewControllers BOOL isKindOfClass controller isKindOfClass
  • 关于v-if判断用法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt
  • Qt调用主界面ui

    一 适用情景 在其他类中使用主界面ui this 控件操作等 二 步骤 首先 子类需要包含主界面的头文件和ui xx h文件 声明主界面类 然后使用构造函数把主界面的指针传递给子类 子类头文件 ifndef ONEUI H define O