我是张帆小可爱 2023-06-28 21:18 采纳率: 76.9%
浏览 20

关于qt与c++连接的问题

我现在已经在用c++写好了一段代码。现在想用qt的图形化界面,将该代码封装成一个button,点进去就可以将该程序的输入输出展示出来,我应该学习qt的哪个方面的知识?

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-30 00:27
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/388836
    • 你也可以参考下这篇文章:关于Qt 信号与槽自动连接 qPushbutton按钮无法点击的问题
    • 除此之外, 这篇博客: QT 信号槽之一:九种基础调用方式中的 自定义按钮:Button 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      button.h

      #ifndef BUTTON_H
      #define BUTTON_H
      #include <QPushButton>
      
      class Button : public QPushButton
      {
          Q_OBJECT
      public:
          explicit Button(QWidget *parent = nullptr);
          Button(const QString &text, QWidget *parent = nullptr);
      
          virtual ~Button();
      
      signals:
      
      };
      
      #endif // BUTTON_H
      

       button.cpp

      #include "button.h"
      
      Button::Button(QWidget *parent) : QPushButton(parent)
      {
      
      }
      
      Button::Button(const QString &text, QWidget *parent) : QPushButton(text,parent)
      {
      
      }
      
      Button::~Button(){
      
      }
    • 您还可以看一下 夏曹俊老师的C++QT5跨平台界面编程原理和实战大全课程中的 QPushButton背景字体qss样式设置添加背景图片小节, 巩固相关知识点
    • 以下回答来自chatgpt:

      要学习使用Qt创建图形化界面并将现有C++代码封装成按钮以展示输入输出结果,你需要学习以下几个方面的知识:

      1. Qt基础知识:了解Qt的基本概念和使用方法,包括Qt的信号与槽机制、Widget的继承与重写、Qt界面设计器、Qt资源文件的使用等。

      2. Qt的UI设计:学习如何使用Qt的界面设计器创建图形化界面。你可以使用Qt的设计器创建一个窗口,然后添加一个按钮和一个文本框。你可以使用设计器将按钮设置为可点击,并将点击事件与展示程序输入输出结果的代码关联起来。

      3. Qt的信号与槽:学习Qt的信号与槽机制,这是Qt中一种重要的事件处理方式。你可以将按钮的点击事件关联到一个特定的槽函数,然后在槽函数中编写展示输入输出结果的代码。

      以下是一个简单的示例代码,演示如何使用Qt来创建一个按钮并展示输入输出结果的方法:

      // main.cpp
      #include <iostream>
      #include <QApplication>
      #include <QPushButton>
      #include <QMessageBox>
      
      // 假设你的现有C++代码是这个函数
      std::string runYourCppCode(std::string input) {
          // 这里是你的C++代码逻辑
          std::string output = "Hello, " + input + "!"; // 假设这是你的输出结果
          return output;
      }
      
      // 槽函数,用于处理按钮点击事件
      void onButtonClicked() {
          std::string input = "World"; // 这是你的输入数据
      
          std::string output = runYourCppCode(input);
      
          // 弹出一个消息框来展示输出结果
          QMessageBox::information(nullptr, "Output", QString::fromStdString(output));
      }
      
      int main(int argc, char *argv[]) {
          QApplication app(argc, argv);
      
          // 创建一个窗口
          QWidget window;
          window.setWindowTitle("Button Example");
      
          // 创建一个按钮
          QPushButton button("Click me", &window);
          button.setGeometry(10, 10, 80, 30);
      
          // 将按钮的点击事件与槽函数关联
          QObject::connect(&button, &QPushButton::clicked, &onButtonClicked);
      
          // 显示窗口
          window.show();
      
          // 进入Qt主循环
          return app.exec();
      }
      

      你可以将上述代码添加到一个新的Qt工程中,然后编译运行该工程,就能看到一个界面中带有一个按钮。当你点击按钮时,程序会运行你现有的C++代码并将输出结果展示在一个弹出的消息框中。你可以根据你的实际需要修改和扩展这个示例代码,以适应你的具体情况。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 6月28日

悬赏问题

  • ¥15 asp写PC网站开通了微信支付,扫码付款不能跳转
  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 关于#c语言#的问题:我在vscode和codeblocks中编写c语言时出现打不开源文件该怎么办
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊