QA-3:

Q:这样创建的按钮和在ui里拖动创建的有什么区别,为什么ui里(edit signals/slots)的我看不到代码

A:基本没有区别。UI 文件是基于 XML 的描述性文件。Qt 使用特殊的编译器(uic)将 UI 文件翻译成 C++ 源代码,然后再进行编译。使用 UI 文件可以进行快速开发,而直接使用代码创建则更方便进行控制

 

Q:

启动软件后,东西全部挤叠在在一起了。
还有一个警告:QWidget::setLayout: Attempting to set QLayout “” on MainWindow “”, which already has a layout

A:

注意代码中是QWidget window;
你大概是用成了QMainWindow window

QMainWindow 有自己的布局管理器,所以一般是把你的布局放在一个 QWidget 上,然后将这个 QWidget 设置为 centralWidget

 QMainWindow 的确是继承自 QWidget,但是它同时添加了自己的 layout,正因为有 layout 的存在,所以你需要使用 setCentralWidget() 函数把一个 QWidget 设置为中心的组件,而不是把一个个的子组件用自己的 layout 添加进去(因为 QMainWindow 已经有了默认的 layout,你自己的 layout 才会不起作用)。

Q:connect函数第二个参数像这样加个括号就会报错:call to non-static member function without an object argument。请教是什么原因,C++学的不扎实还请见谅

QObject::connect(&button, &(QPushButton::clicked), &QApplication::quit);

A:这里是取函数指针,加上括号后编译器需要先执行括号里面的语句,而这个语句是非法的,所以报错。函数的名称就是函数的地址,但是在 C++ 中,取函数地址必须使用 & 运算符。&究竟是引用还是取址,是根据上下文来判断的。引用的话是必须初始化的

Q:QMetaMethod类型是用来做啥用的?
A:  QMetaMethod 用于实现反射机制,即利用函数名调用一个函数这类功能.
这个一般是一些高级用法,比如 Qt 4 中的信号槽,实际是用两个字符串进行关联,即 Qt 会记录下,当信号 aSIGNAL 发出时,调用 aSLOT 函数。此时,aSIGNAL 和 aSLOT 在 Qt 内部以字符串的形式存储。当运行时,Qt 发现了 aSIGNAL 信号,则找到其对应的 aSLOT 字符串,此时就利用 QMetaMethod 去调用这个字符串对应的函数。如果感兴趣,可以详细了解下反射机制(不仅是 Qt,可以看看 Java 之类的,会更清晰一些,因为 C++ 语言级别的反射比较弱,所以 Qt 按照 Java 的方式做了增强)。

Tips:

一个程序中,在栈上分配太多对象可能会导致栈空间不足,从而程序崩溃。所以要适当的用堆啊。

转载于:https://www.cnblogs.com/AbsolutelyPerfect/p/7770734.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

B. File List

174B. File List:题目 可恶啊&#xff0c;写了一堆bug&#xff0c;最讨厌字符串处理了(〃&#xff1e;目&#xff1c;)#include <bits/stdc.h> using namespace std; // #define int long long string s, ss ""; vector<string> ve; signed main() {//…

SQLServer 的存储过程与java交互

一、 存储过程简介 Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量、条件执行和其他强大的编程功能。 存储过程相对于其他的数据库访问方法有以下的优点&#xff1a; &#xff08;1&#xff…

[译]Javascript中的闭包(closures)

本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?vPMsVM7rjupU&listPL6n9fhu94yhUA99nOsJkKXBqokT3MBK0b 本次视频中我们将通过例子来理解Javascript中的闭包(closure) 什么是闭包(closure)? 一个闭包就是一个在…

二、PyCharm 创建Django 第一个项目

PyCharm 下创建Django项目 File->New Project->Django 目录说明&#xff1a; dj: 项目的容器。manage.py: 一个实用的命令行工具&#xff0c;可让你以各种方式与该 Django 项目进行交互。dj/__init__.py: 一个空文件&#xff0c;告诉 Python 该目录是一个 Python 包。dj/…

linux last failed login表示什么意思_Linux用户

Linux的用户在登录(login)之后&#xff0c;就带有一个用户身份(user ID, UID)和一个组身份(group ID, GID)。在Linux文件管理背景知识中&#xff0c;我们又看到&#xff0c;每个文件又有九位的权限说明&#xff0c;用来指明该文件允许哪些用户执行哪些操作(读、写或者执行)。(参…

CSS3详解:transform、transition

CSS3 transform是什么&#xff1f; transform的含义是&#xff1a;改变&#xff0c;使…变形&#xff1b;转换 CSS3 transform都有哪些常用属性&#xff1f; transform的属性包括&#xff1a;rotate() / skew() / scale() / translate(,) &#xff0c;分别还有x、y之分&#xf…

D. Flowers

D. Flowers 一个简单线性dp#include <bits/stdc.h> using namespace std; #define int long long const int mod 1e9 7; int a[(int)2e6]; signed main() {int t, k;cin >> t >> k;a[0] 1;for (int i 1; i < 1e5 5; i){a[i] a[i - 1];a[i] % mod;i…

逆向映射是干嘛的anon_vma, vma, anon_vma_chain

逆向映射是为了从page得到进程信息&#xff0c;里面有三个比较重要的结构体&#xff1a; mm_area_struct, anon_vma_chain, anon_vma 想象一种复杂的场景 所以其实一个进程对应着很多anon_vma才对 进程A&#xff1a;mmap了16K的匿名页出来&#xff0c;这16k应该是有一个vma&…

1359C. Mixing Water

C. Mixing Water 一个简单的思维。 因为是一隔一的&#xff0c;所以要么热水多放一个&#xff0c;要么冷水和热水一样多。 设热水与要求的差为cou1&#xff0c;冷水与要求的差为cou2。 所以我们先考虑两种情况&#xff1a; 1&#xff0c;cou1大于cou2&#xff0c;那么肯定是要…

读取txt文件赋值到DataGridView中

先查看txt是每条信息之间是通过什么分割&#xff0c;我是通过换行符&#xff08;\n&#xff09;分割的, 然后再看每一条信息中字段是通过什么分割&#xff0c;我的字段是通过 tab键&#xff08;\t&#xff09;分割。 第一步 先获取到txt文件的路径&#xff1a; //获取绝对路径v…

Combobox报错:row[opts.textField].toLowerCase is not a function。

使用easyui框架加载combobox。 html页面&#xff1a; <span class"search_item"><span class"item_text">账号ID:</span><span class"item_obj"><input class"easyui-textbox" type"text" name&…

c++ 线程什么时候run_多线程并发支撑基础之JAVA内存模型

Java内存模型可以说是Java并发的底层支持&#xff0c;了解Java内存模型才能正在了解Java并发。内存模型在内存中设置一个变量"value 1&#xff1b;"那么其他线程能在什么时候读取到这个结果呢&#xff1f;有可能不能立即甚至永远都读不到。比如指令顺序与源代码中的…

1476D. Journey

D. Journey 一道简单线性dp#include <bits/stdc.h> using namespace std; const int N 5e5 3; char str[N]; int a[N],b[N]; int main() {int t;cin>>t;while (t--){int n;cin>>n;cin>>str1;for (int i0;i<n;i) a[i] b[i] 1;if (str[1]L) a[1]…

润乾报表 数据集ds1中,数据源xmglxt_x3无数据库连接,且未设定数据连接工厂,请检查数据源设定:...

一、润乾报表错误内容 产生数据工厂: com.runqian.report4.dataset.SQLDataSetFactory 失败 错误来源&#xff1a;: 数据集ds1中&#xff0c;数据源xmglxt_x3无数据库连接&#xff0c;且未设定数据连接工厂&#xff0c;请检查数据源设定&#xff1a; 二、解决方法 同事做的润乾…

1388C. Uncle Bogdan and Country Happiness

C. Uncle Bogdan and Country Happiness 纯纯DFS#include <bits/stdc.h> using namespace std; const int N 1e5 3; #define int long long int a[N], b[N], c[N]; vector<int> cun[N]; int vis[N]; int ff 1; void DFS(int x) {int res 0;int xx a[x];for (…

WPF中的数据绑定Data Binding使用小结

完整的数据绑定的语法说明可以在这里查看&#xff1a; http://www.nbdtech.com/Free/WpfBinding.pdf MSDN资料&#xff1a; Data Binding: Part 1 http://msdn.microsoft.com/en-us/library/aa480224.aspx Data Binding: Part 2 http://msdn.microsoft.com/en-us/library/aa480…

awr报告分析 mysql_AWR报告的生成和简单分析方法

生成AWR报告方法&#xff1a; 第一步&#xff1a;数据库压力测试卡开始时&#xff1a;生成第一个快照&#xff1a; Sqlexec dbms_workload_repository.create_snapshot(); 第二步&#xff1a;数据库压力测试结束时&#xff1a;生成第二个快照 Sqlexec dbms_workload_repository…

1560F1. Nearest Beautiful Number (easy version)

F1. Nearest Beautiful Number (easy version) 预处理加二分#include <bits/stdc.h> using namespace std; const int N 3e5 3; #define int long long set<int>cun1,cun2; signed main() {//单个for (int i1;i<9;i){int res 0;for (int j0;j<9;j) {res …

sqlserver 微信昵称_sql server用户名和登录名的区别和联系

在SQLSERVER数据库中&#xff0c;guest帐户是特殊的用户帐户。如果用户使用USE database语句访问的数据库中没有与此用户关联的帐户&#xff0c;此用户就与guest用户相关联。另外SQLSERVER采取登录名-用户名的安全规则&#xff0c;和Oracle里面的schema有点像。SQLSERVER使用所…

1506G. Maximize the Remaining String

G. Maximize the Remaining String 贪心&#xff0c;放置时&#xff0c;如果前面一个小比他小&#xff0c;并且后面还有&#xff0c;那么就把前面的删除#include <bits/stdc.h> using namespace std; const int N 3e5 3; #define int long long string str; char ans[…