QT编写的软件思路求助
本帖最后由 阳光好青年 于 2023-10-17 11:24 编辑一个QT写的软件,我想去除一些界面,让软件看起更清爽,如删去红框内两个“qtabwidget”控件
根据qt API ,应该是我追出来8个 函数进去add的界面
ebx:public: int __thiscall QTabWidget::addTab(class QWidget *, class QIcon const &, class QString const &)
我的思路是 nop 掉call addTab的函数,但是整个程序就崩溃了。
应该怎么做呢? 结束了。
最后还是nop大法,把call前入栈传参的全部nop掉了。
本帖最后由 ghui 于 2023-10-17 10:37 编辑
阳光好青年 发表于 2023-10-17 10:03
编写方法可能不同,我看官网应该有个使能界面的函数得调用一下。
如:ui->tabWidget->setTabEnabled(0,...
addTab后tab默认就是使能的,一般不会用到你这个函数ui->tabWidget->setTabEnabled(0, true);
void QTabWidget::setTabVisible(int index, bool visible)If visible is true, the page at position index is visible; otherwise the page at position index is hidden. The page's tab is redrawn appropriately.This function was introduced in Qt 5.15.See also isTabVisible(). ghui 发表于 2023-10-17 09:55
后面是不是还有访问这个tab的地方
tab->widget(int index)
编写方法可能不同,我看官网应该有个使能界面的函数得调用一下。
如:ui->tabWidget->setTabEnabled(0, true);
追函数符号没看到,还在研究。 后面是不是还有访问这个tab的地方
tab->widget(int index) 我觉得应该考虑隐藏,或者不可用控件,不建议删除控件,因为你不知道那里可能用到这个指针,会导致崩溃。
ui.tab->hideTab(0);找指针调函数 {:1_927:}
回复有钱拿
nop注意栈的平衡 disable 是最靠谱的,后续肯定继续使用了。
如果想要完美,通过QSS把最后两个tab宽度设置为0,这样最符合你的需求。 禁止回复奖励,修改掉。 JuncoJet 发表于 2023-10-17 10:48
回复有钱拿
nop注意栈的平衡
谢谢,我参考:https://blog.51cto.com/h2appy/1564887
栈平衡 add esp,0xC
但提示指令大一字节,然后强行改还是崩
页:
[1]
2