我有一个使用垂直 QSplitter 分隔两个重要小部件的类(箭头指针位于拆分器位置):
上子小部件是 QTextEdit,而下子小部件是与我的应用程序标记系统交互的自定义小部件。较低的孩子默认折叠;它仅在用户单击标签工具栏按钮或向上拖动拆分器时显示。当按钮打开时,显示较低的孩子,否则它保持隐藏状态。
工具栏按钮工作正常,但现在我无法通过将分隔栏一直向下拖动来检测用户何时折叠小孩子。当用户手动折叠较低的孩子时,这会导致工具栏按钮保持打开状态。反之亦然;当用户向上拖动拆分器时,按钮保持关闭状态。
我已经尝试将 QSplitter:splitterMoved(int pos,int index) 信号连接到一个插槽,当较低的孩子(索引 1)手动折叠(位置 0)时取消切换按钮但由于某种原因信号永远不会得到发出。
我的代码(拆分器对象称为divide)连接这个信号......
connect(divide, SIGNAL(splitterMoved(int,int)), this, SLOT(splitterMoved(int pos, int index)));
...到这个插槽:
void Editor::splitterMoved(int pos, int index){
using namespace std;
if((index==1) && (pos==0)){
ui->TagButton->setChecked(false);
}
else{
ui->TagButton->setChecked(true);
}
}
我用错了吗?无论我对分离器做什么,该插槽目前什么都不做。有没有更好的方法来解决这个问题?