2009-09-19 77 views
1

我刚刚开始与QT。我已经通读了一些教程,并且我认为我对信号和插槽有所了解。我正在编写一个具有各种按钮的GUI,以改变我的主程序的状态。例如,在绘图应用程序中,您可以选择不同的绘图工具(使用各种按钮)。qt GUI连接

什么是去了解这一点的最好方法是什么?我的第一个想法是尝试将PushButton的点击信号连接到设置current_tool变量的某个函数。我做了一些搜索,并找不到将QObject信号连接到常规函数的方法。

这使我相信,可能有不同的方法。我创建一个具有各种GUI属性的新QObject(我自己的扩展)。然后我会在这里为我的各个按钮定义我的插槽。

在QT中做这件事的最好方法是什么?我是新来的,不知道首选的做法。

任何信息将是有益的, 感谢

回答

1

可以定义这些“正常功能”的插槽。老虎机只是normal functions那也可以通过信号称为:

从UIC生成,创造,也就是说,一个MyAppWindow类的类
class ToolSelector : public QObject { 
    Q_OBJECT 

public: 
    Tool *selected; 

public slots: 
    void selectBrush(); 
    void selectPen(); 
    void selectFill(); 
}; 

ToolSelector::selectBrush() { 
    delete selected; 
    selected = new Brush(); 
} 

ToolSelector::selectPen() { 
    // ... 
} 

// ... 

toolsel = new ToolSelector(); 
brushButton = new QPushButton(); 
connect(brushButton, SIGNAL(clicked()), toolsel, SLOT(selectBrush())); 
+0

重要的是要注意,这只适用于由QObject派生的对象。 – ypnos 2009-09-20 11:41:02

0

继承。在该类中提供额外的方法以及文档或绘图对象。将这些方法连接到您感兴趣的信号,然后它们更改包含绘图状态的成员变量。