基本 Qt 应用程序 (QMainWindow) 中不显示小部件

2024-01-04

我是 Qt 新手,正在用简单的例子进行一些练习。

我只是想通过编码来测试我的知识,通过一个简单的应用程序,用户在 QLineEdit 小部件中键入文本,该文本将显示在 QLabel 中。没有必要让它有用。我只是想尝试一下。

编译应用程序时,我没有收到任何错误。但是,当窗口打开时,QLabel 和 QLineEdit 小部件不可见。

我的代码在这里:

Window.h

#ifndef WINDOW_H
#define WINDOW_H

#include <QMainWindow>

class QGridLayout;
class QLabel;
class QLineEdit;

class Window : public QMainWindow
{
    Q_OBJECT

public:
    explicit Window(QWidget *parent = 0);

private:
    QGridLayout *mainLayout;
    QLabel *label;
    QLineEdit *lineEdit;
};

#endif // WINDOW_H

窗口.cpp

#include "Window.h"
#include <QGridLayout>
#include <QLineEdit>
#include <QLabel>

Window::Window(QWidget *parent)
    : QMainWindow(parent)
{
    mainLayout = new QGridLayout;
    label = new QLabel(tr("Text"));
    lineEdit = new QLineEdit;

    mainLayout->addWidget(label, 0, 0);
    mainLayout->addWidget(lineEdit, 1, 0);
    setLayout(mainLayout);

    connect(lineEdit, SIGNAL(textChanged(QString)),
            label, SLOT(setText(QString)));
}

main.cpp

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

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    Window window;
    window.show();

    return app.exec();
}

我在代码中找不到任何错误。

提前致谢。


A QMainWindow必须有一个中心小部件,即使它只是一个占位符。另请注意,它有自己的布局用于添加工具栏、菜单栏等 - 因此您可能想要设置布局(mainLayout在您的代码中)代替中央小部件。

检查QMainWindow 类参考 http://qt-project.org/doc/qt-4.8/qmainwindow.html#details了解详情。

要使您的小部件在主窗口中可见,您可以像这样修改构造函数:

窗口.cpp

#include "Window.h"
#include <QGridLayout>
#include <QLineEdit>
#include <QLabel>

Window::Window(QWidget *parent)
    : QMainWindow(parent)
{
    QWidget* someWidget = new QWidget(this);
    mainLayout = new QGridLayout;
    label = new QLabel(tr("Text"));
    lineEdit = new QLineEdit;

    mainLayout->addWidget(label, 0, 0);
    mainLayout->addWidget(lineEdit, 1, 0);
    someWidget->setLayout(mainLayout);

    connect(lineEdit, SIGNAL(textChanged(QString)),
             label, SLOT(setText(QString)));

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

基本 Qt 应用程序 (QMainWindow) 中不显示小部件 的相关文章

  • 如何在 C++ 运行时更改 QML 对象的属性?

    我想在运行时更改 QML 对象的文本 我尝试如下 但文本仍然为空 这是后端类 class BackEnd public QObject Q OBJECT Q PROPERTY QString userFieldText READ userF
  • 程序意外完成 - QT Creator

    我正在尝试使用 QT Creator 使用 QT 框架开发 GUI 控制台应用程序 我使用的是Windows XP 我安装了QT 4 8 3和mingw 两者均已安装 没有任何错误 然后我安装了QT Creator QT 版本 路径中的 Q
  • 如何创建QWidget的屏幕截图?

    我在 Qt Creator 中做作业 在其中绘制 QWidget 并且需要保存此 QWdiget 的某些部分 我试图解决这个问题 QPixmap pixmap pixmap copy rectangle rectangle is part
  • GoQt 致命错误:QAbstractAnimation:没有这样的文件或目录

    我尝试编译 Qt 来开发桌面应用程序 我按照 Qt 网站上的官方 wiki 指南的说明进行操作 当我尝试go run示例文件夹中的示例 我收到错误 去运行 home pinkya rabbit workspace go1programs s
  • 如何在模型更改时停止ListView“跳跃”

    我需要做什么 我需要创建一个聊天窗口用一个ListView在 QML 中存储聊天消息 我设置listView positionViewAtEnd 以便跟踪最后的消息 我禁用positionViewAtEnd当我向上滚动时 我可以阅读过去的消
  • 如何使用Python在没有窗口的情况下在屏幕上显示文本

    问题 我需要在没有窗口的情况下直接将文本写入屏幕 文本需要显示在所有其他窗口和全屏应用程序之上 并且不应以任何方式单击或交互 Example The text doesn t need to have a transparent backg
  • 禁用 QML Slider 的鼠标滚轮

    我希望能够滚动Flickable使用鼠标滚轮 或触摸板上的两根手指 不改变Sliders它可能包含 示例代码及结果应用 import QtQuick 2 7 import QtQuick Window 2 2 import QtQuick
  • 加权 Voronoi 的 CGAL 2D APOLLONIUS 图 - 如何生成和获取面和顶点?

    我正在尝试根据阿波罗尼乌斯图生成加权沃罗诺伊 我正在使用 CGAL 库 我找不到如何从 apollonius 获取面和顶点的好例子 我有以下类型定义 typedef double NT typedef CGAL Cartesian lt N
  • 如何编辑 QProgressBar 的样式表

    我无法在我的应用程序中编辑进度条的颜色 仅编辑文本颜色 pyhton 3 9 PySide6 QT Creator 7 0 2 Python应用程序 https i stack imgur com 6hKFI png import sys
  • 错误 LNK2001:无法解析的外部符号 __CxxFrameHandler3

    我正在将 Qt 从 VS 2013 迁移到 Qt 5 10 1 到 VS 2015 出现以下多个链接错误 error LNK2001 unresolved external symbol CxxFrameHandler3 error LNK
  • Swing GUI 出现 IntelliJ 错误“contentPane 无法设置为 null。”从终端编译时

    当我从 IntelliJ 编译我的项目时 没有任何问题 我的程序运行顺利 但是当我尝试使用 javac 从终端编译它时 警告 注意 Victor presentation TableControllerMenu java 使用未经检查或不安
  • 从布局中按名称获取小部件

    如果我想从 python Qt 的布局中获取特定的小部件 我应该如何进行 到目前为止我所做的 for i in range self ui horizontalLayout 14 count here it does fail name s
  • 为 Windows 98 编译 Qt

    我需要支持 Windows 98 Qt 文档声称这是可能的 但没有说明 Qt 4 6 的分布式二进制文件不能在 Win98 上运行 而且我采样的大多数 Qt 应用程序也不能在 Win98 上运行 对于几个确实在 98 上运行的应用程序 我询
  • 带有图层列表的自定义背景以显示对角线?

    我只想创建一个自定义背景 但我不知道如何使用 xml 而不是图像来做到这一点 这是 XML
  • QToolButton:更改菜单位置

    使用菜单时QToolButton菜单显示在按钮的正下方 有没有办法在按钮的左侧 右侧显示菜单 我知道这个问题不久前已得到回答 但我想为此问题添加新答案 因为接受的答案不再有效 实际上 更改 QToolButton 上的菜单位置非常容易 您需
  • 如何在JPanel中设置背景图片

    你好 我使用 JPanel 作为我的框架的容器 然后我真的想在我的面板中使用背景图片 我真的需要帮助 这是我到目前为止的代码 这是更新 请检查这里是我的代码 import java awt import javax swing import
  • Tkinter:消息小部件中锚点选项的正确值是多少?

    我一直在学习 tkinterTkinter 中的消息小部件 https python course eu tkinter message widget in tkinter php at Python 课程和教程 https python
  • PyQt5:如何使QThread返回数据到主线程

    I am a PyQt 5 4 1 1初学者 我的Python是3 4 3 这是我尝试遵循的many https mayaposch wordpress com 2011 11 01 how to really truly use qthr
  • 将 gnuplot 嵌入现有 QtWidget 中

    我正在用 C 创建一个 伪 实时绘图应用程序 使用 gnuplot 作为绘图后端 我的要求之一是绘图必须位于现有窗口内 而不是有一个单独的绘图窗口 gnuplot 默认为 Gnuplot 有一个选项可以指定 Qt 小部件 ID 这似乎适合我
  • 拦截jTable选择改变事件

    I found 这个论坛主题 http www javakb com Uwe Forum aspx java programmer 2407 Row non selectable in a JTable这建议重写 ListSelection

随机推荐

  • 如何使用 Yii2 kartik gridview 可编辑列与多个模型关系

    问题 我有 2 个模型 用户模型和用户配置文件模型 两者都与主键和外键 user id 相关 用户表有字段 id 用户名 密码 电子邮件等 user profile表包含id user id 公司 电话等 我在用户视图中创建了gridvie
  • 没有html的innerHTML,只有文本[重复]

    这个问题在这里已经有答案了 我创建了一个电子邮件链接 它会自动填充正文中的必要信息 但是 当我执行 innerHTML 时 我得到的比我预想的要多一些 我想要 2012 年 3 月 12 16 我得到什么 b March 2012 b fo
  • 有没有办法更改谷歌一键提示的语言?

    目前 谷歌一键提示仅以英文呈现 有没有一种方法可以将区域设置传递给 javascript api 以便以该特定语言呈现提示 抱歉这么晚才回复 但是我最近遇到了同样的问题 官方文档没有提供处理提示本地化的直接方法 我发现的最接近的想法是 li
  • 如何获取hive UDF中的taskID或mapperID(类似于Spark中的partitionID)?

    作为问题 如何在 hive UDF 中获取任务 ID 或映射器 ID 类似于 Spark 中的分区 ID 您可以使用 TaskContext 访问任务信息 import org apache spark TaskContext sc par
  • Facebook oauth 授权 URL 和参数选项

    Facebook 提供了一些关于参数的文档oauth login 登录对话框 OAuth 2 https developers facebook com docs reference dialogs oauth 参数为 client id
  • Java 6 中 IdentityHashMap 的实际使用[重复]

    这个问题在这里已经有答案了 可能的重复 IdentityHashMap 的用例 https stackoverflow com questions 838528 use cases for identityhashmap Java 5 中引
  • Android ActionBarSherlock 顶部图标返回

    我正在尝试制作顶部操作栏图标以允许用户返回到上一个屏幕 我试图实现这些代码 但没有一个起作用 任何人都可以指导我吗 我知道这看起来很简单 我是 android 新手 下面是我的代码 问题 当我点击图标按钮时 它只是清除了我的屏幕 而没有转到
  • com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;'

    错误 无法找到方法 com android build gradle api BaseVariant getOutputs Ljava util List 导致此意外错误的可能原因包括 Gradle 的依赖项缓存可能已损坏 这有时会在网络连
  • 如何确定 ColdFusion 应用程序使用哪些文件?

    我正在开始对现有的 ColdFusion 应用程序进行一些工作 该应用程序没有版本控制 并且看起来像是未使用的 cfm 文件 test cfm test2 cfm 等 我想了解哪些文件实际上是应用程序的一部分 这样我就可以将其以可管理的状态
  • VBScript 环境变量

    我有一个关于应该如何修复运行脚本时看到的错误的问题 我很确定这与我使用 COMPUTERNAME 环境变量的方式有关 我的脚本的作用是在本地压缩一些文件 然后使用 robocopy 将它们复制到已安装或共享的驱动器 然后检查文件大小是否相同
  • 将新记录添加到 GridView 但不应更新数据库

    我有一个绑定到数据视图的网格视图 OnPageLoad 我正在填充网格视图记录 我有一个文本框和一个按钮 所以现在我想向 GridView 添加更多记录 但这些记录不应添加到数据库中 它们只是添加到页面中 当然来自数据库的默认记录也会保留
  • Python 中的就地函数

    Python中有一个就地函数的概念 例如shuffle就位 因为它返回None 如何确定函数是否就位 from random import shuffle print type shuffle
  • Javascript 中的函数是对象还是类型?

    In his 雄辩的 JavaScript Haverbeke 声称 第 16 页 在 JavaScript 系统中 大部分数据被整齐地分成称为值的东西 每个值都有一个类型 它决定了它可以扮演的角色 值有六种基本类型 数字 字符串 布尔值
  • Herkou Redis - 证书验证失败(证书链中的自签名证书)

    我在我的一个业余项目中使用 heroku redis 一段时间了 我目前用它来做三件事 它是我存储 firebase 证书的地方 它用于缓存站点上的数据 它用于 Rails sidekiq 作业 最近 我的 heroku 使用量增加了 我不
  • 自动释放池中的快速闭包访问没有 self 的方法

    这是示例代码 func anyMethod Nothing here var myVariable autoreleasepool anyMethod This should show error print myVariable This
  • 异步网络接口状态检查

    在 Mac OS X 上 有没有办法在网络接口 en0 en1 状态发生变化 例如网络接口处于活动状态 非活动状态等 时获取异步通知 我想知道是否有一种方法可以获取异步通知 而不是轮询状态 以便每当有更改时 都会触发通知并且应用程序可以处理
  • scikit SGDClassifierpartial_fit 不会增量学习。返回“类应包含所有有效标签”

    我将两个数据流传递给 sgd clf 分类器 如下面的代码所示 第一个partial fit 正在获取第一个数据流x1 y1 第二个partial fit 正在获取第二个数据流x2 y2 下面的代码在第二个partial fit步骤中给了我
  • ggplot2 中的注释不支持换行符是粘贴和解析的命令

    Question 如何得到paste and parse in annotate of ggplot2尊重换行符 n 问题和MWE 我正在尝试重现ggplot2使用 NMDS 分析的应力图metaMDS包装内vegan 这是我的 MWE 后
  • 使用动态表名称查询 Oracle 数据库

    我陷入了一些糟糕的数据库设计中 我必须查询按日期命名的表 当表名称与相关日期进行硬编码时 以下查询有效 SELECT ajob ORDER ID ajob JOB NAME abim SERVICE ID shist SERVICE NAM
  • 基本 Qt 应用程序 (QMainWindow) 中不显示小部件

    我是 Qt 新手 正在用简单的例子进行一些练习 我只是想通过编码来测试我的知识 通过一个简单的应用程序 用户在 QLineEdit 小部件中键入文本 该文本将显示在 QLabel 中 没有必要让它有用 我只是想尝试一下 编译应用程序时 我没