【发布时间】:2011-07-20 07:13:10
【问题描述】:
我是 Qt 创建者的新手。我有一个 3 页的堆叠小部件。我还有一个菜单栏,其中包含:open \\ create。 QWidget 包含 2 个页面。我想问一下如何将打开与第一页同步并从菜单栏创建与堆叠小部件的第二页?
我确实写过:ui->stackedWidget->show(); 但它正在打印第二页以打开和创建。
需要帮助。
【问题讨论】:
标签: c++ qt ubuntu qt-creator
我是 Qt 创建者的新手。我有一个 3 页的堆叠小部件。我还有一个菜单栏,其中包含:open \\ create。 QWidget 包含 2 个页面。我想问一下如何将打开与第一页同步并从菜单栏创建与堆叠小部件的第二页?
我确实写过:ui->stackedWidget->show(); 但它正在打印第二页以打开和创建。
需要帮助。
【问题讨论】:
标签: c++ qt ubuntu qt-creator
您必须在 MainWindow 类中声明两个插槽。例如:
class MainWindow : public QMainWindow
{
...
public slots:
void slotOpen() ;
void slotCreate() ;
...
} ;
然后,在您的 MainWindow 构造函数中(假设您的菜单操作是 actionOpen 和 actionCreate):
connect (ui -> actionOpen, SIGNAL(triggered()), SLOT(slotOpen())) ;
connect (ui -> actionCreate, SIGNAL(triggered()), SLOT(slotCreate())) ;
槽函数:
void MainWindow::slotOpen()
{
ui -> stackedWidget -> setCurrentIndex(0) ;
}
void MainWindow::slotCreate()
{
ui -> stackedWidget -> setCurrentIndex(1) ;
}
【讨论】:
您可以将菜单操作连接到QStackedWidget 插槽setCurrentIndex。这将允许您在单击菜单时显示正确的小部件。
【讨论】:
SIGNAL(triggered()),而不是SIGNAL(triggered)。哦,还有括号不匹配的问题。