已解决的问题:Q_OBJECT 宏是必要的,正确的信号槽声明对于任何其他句柄也很重要。
我无法专注于任何输入类型的小部件QTextEdit
,例如QListWidget
等。
注意:没有编译时或运行时错误。
更新:QSplitter
工作正常!我有一个QListWidget
,我单击其项目,但仅当我使用拆分器进行下一步操作时它们才会突出显示。
我有一个MainWindow
派生自以下QMainWindow
声明的类main_window.h
:
class MainWindow : public QMainWindow{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
//some other members like menu and statusbar here
}
我有另一个名为Stack
派生自QWidget
定义的类stack.h
:
class Stack: public QWidget{
public:
Stack(QWidget *parent=0);
//some other members
}
的构造函数Stack
如下stack.cpp
:
Stack::Stack(QWidget *parent):QWidget(parent){
main = new QHBoxLayout;
handle = new QSplitter;
setupList();
setupScreens();
//above functions add the widgets to the handle splitter
main->addWidget(handle);
setLayout(main);
}
MainWindow
如果我在using的单独窗口中打开此小部件test->show()
,则事情会按预期/按我的意愿工作。但是在MainWindow
构造函数中这样做会使其无法点击。
MainWindow::MainWindow(QWidget *parent):QMainWindow(parent){
Stack *test = new Stack(this);
//test->show();
setCentralWidget(test);
}
这很奇怪。为什么我无法聚焦任何可以输入的小部件,例如QTextEdit
,QListWidget
或单击任何QPushButton
小部件?