页次: 1
Eden 说:心情复杂 说:你是通过Main_widget来创建sub_widget的 那你第一次点按钮之后就把他close了 那以后咋办 难道你的按钮只用一次的?
你好,我是想实现这个功能:
有Main,Sub两个界面,界面上分别有一个按钮, 按下界面Main的按钮之后,跳转到Sub界面同时把Main界面的资源释放掉,再Sub界面按下按钮之后重新绘制Main界面同时把Sub界面的资源释放
我的理解是:在Main界面按下按钮时,使用close关掉这个界面,同时创建sub界面,这样子的话按钮应该就是一次性的,按完之后这个界面关闭,跳到其他界面,如果不用close的话是不是就是 sub界面把main界面覆盖了而已,Main界面还是存在的
上面在析构函数里面delete sub感觉好像是不对的,因为close会触发它的析构函数,但是这样子不知道在哪里释放sub这个指针您方便留个联系方式吗,我好向您请教
请教倒不用,我也是个Qt菜鸟。:rolleyes:
可以提供点思路给你
你可以在A对象的btn的槽函数里:定义B对象 绑定信号A1到 B的槽 B1 B->Show(); 发送信号A1 将A对象的Close和Delete放到B的槽函数里
反之亦然
好的,谢谢您,我去试一下
Eden 说:心情复杂 说:为啥要this->close();
sub_widget 是一个新的窗口,按钮按下之后的操作不应该是把Main_widget 关掉然后再去打开新的窗口吗
你是通过Main_widget来创建sub_widget的 那你第一次点按钮之后就把他close了 那以后咋办 难道你的按钮只用一次的?
你好,我是想实现这个功能:
有Main,Sub两个界面,界面上分别有一个按钮, 按下界面Main的按钮之后,跳转到Sub界面同时把Main界面的资源释放掉,再Sub界面按下按钮之后重新绘制Main界面同时把Sub界面的资源释放
我的理解是:在Main界面按下按钮时,使用close关掉这个界面,同时创建sub界面,这样子的话按钮应该就是一次性的,按完之后这个界面关闭,跳到其他界面,如果不用close的话是不是就是 sub界面把main界面覆盖了而已,Main界面还是存在的
上面在析构函数里面delete sub感觉好像是不对的,因为close会触发它的析构函数,但是这样子不知道在哪里释放sub这个指针
您方便留个联系方式吗,我好向您请教
1.我在.h文件中创建了控件的指针,然后再构造函数里面给指针分配,编译没有问题,放到板子上就出现段错误,试过不在.h文件里面而在构造函数里面创建指针,运行之后也会出现段错误 如图:
2.我看到网上的资料,需要用到多窗口时都是重新建一个类(sub_widget),然后在主窗口(main_widget)定义一个新类的对象, 通过hide()和show()分别隐藏和显示窗口
我想要释放资源所以把hide换成了close,也在sub_widget里面设置了Qt::WA_DeleteonClose这个参数,可是第二次进入sub_widget的时候就会挂掉。
请问有什么其他方法可以在关闭窗口的时候同时释放掉资源吗,或者是我上面的这种方法用的不恰当
$ arm-linux-gnueabihf-objdump -x ./output/target/usr/lib/qt/plugins/platforms/libqlinuxfb.so |grep NEED NEEDED libgthread-2.0.so.0 NEEDED libglib-2.0.so.0 NEEDED libfontconfig.so.1 NEEDED libfreetype.so.6 NEEDED libz.so.1 NEEDED libQt5Gui.so.5 NEEDED libatomic.so.1 NEEDED libudev.so.1 NEEDED librt.so.1 NEEDED libdl.so.2 NEEDED libQt5Core.so.5 NEEDED libpthread.so.0 NEEDED libts.so.0 NEEDED libstdc++.so.6 NEEDED libm.so.6 NEEDED libgcc_s.so.1 NEEDED libc.so.6 VERNEED 0x0000bb68 VERNEEDNUM 0x00000008
是不是依赖的文件不在?
你好,我按照您说的方法将这些库都移到 /opt/lib目录下,并且用LD_LIBRARY_PATH指定了可运行之后还是上面那个错误
移植Qt5.9.6,已经在虚拟机里面生成了可执行文件,也有将安装目录下面的libs/plgins 复制到板子上
按照网上的资料配置了以下的路径
export QT_QPA_PLATFORM_PLUGIN_PATH=/opt/lib/plugins
export LD_LIBRARY_PATH=/opt/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=800x600:mmSize=800x600:offset=0x0:tty=/dev/tty1
可还是依然出现这个问题
This application failed to start because it could not find or load the Qt platform plugin "linuxfb"
in "/opt/lib/plugins/".
Available platform plugins are: linuxfb, minimal, offscreen, vnc.
Reinstalling the application may fix this problem.
在/opt/lib/plugins/platforms里面可以找到 libqlinuxfb.so
请问是哪里出错了
widget_get_text取出来的是wchar_t*,强制转换为(char*),只能取得第一个字符,你需要再转换成UTF-8。或者直接调用下面这个函数:
/** * @method widget_get_text_utf8 * 获取控件的文本。 * 只是对widget\_get\_prop的包装,文本的意义由子类控件决定。 * @param {widget_t*} widget 控件对象。 * @param {char*} text 用于返回文本。 * @param {uint32_t} size text内存长度。 * * @return {ret_t} 返回RET_OK表示成功,否则表示失败。 */ ret_t widget_get_text_utf8(widget_t* widget, char* text, uint32_t size);
好的,谢谢博主
<window name="main" x="0" y="0" w="320" h="480" style="Green_bg">
<label name="" x="10" y="40" w="80" h="30" text="Left" opacity="0"/>
</window>
最开始写了上面的练习程序之后,执行preview_ui预览,(style="Green_bg"已经在default文件定义),执行后将opacity参数去掉,甚至令它等于255,都出现了所有控件没法显示的问题
之后再去运行demoui例程,所有控件也都看不见但是功能存在
猜想可能跟最开始设置的opacity="0"这个参数让所有控件都透明了,是执行preview_ui之后被写到某个文件的固定配置了吗?如果是的话为什么让opacity=255,控件还是不能显示呢。
还有就是为什么执行preview_ui进行预览会影响到demoui呢?
请大家帮忙解惑,谢谢!!!
页次: 1