1

我是QT的新手。

我在 Visual Studio 2008 上使用 qt 4.7.1。

我正在尝试实现一个全部被图像覆盖的按钮,当按下时,图像会发生变化。(图像按钮)我正在尝试使用 QT 设计器将按钮置于正确的布局中,然后以编程方式处理按下事件(..signal..)以更改按钮上的图标。

创建新的主窗口。在里面放一个工具按钮。切换到插槽和信号模式。在窗口上创建了一个从按钮pressed() 到 new slot1() 的信号槽。现在我把 slot1() 的代码放在哪里?

4

1 回答 1

1

对不起我的英语。这很糟糕,但我会尽力帮助你。

您必须使用继承方法。所以:
• 您创建了一个表单,在该表单上添加了与 slot1() 的连接。
• 在项目中包含您的表单,编译它。将生成一个名为 ui_FormName.h 的文件。在该文件的底部,您会找到如下代码:
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui

您必须:
1) 创建一个新类,继承自 QMainWindow 类。
2) 在包含生成的 h 文件的头文件中,添加类型为 Ui::MainWindow 的成员,该成员在生成的 .h 文件中声明(例如:)Ui::MainWindow* m_puiTmp;
3)还添加代码:
public slots: // or private slots:, or protected slots: ... Whatever.
void slot1();

然后为新类中的函数创建实现。不要忘记添加 m_puiTmp->setupUi( this );您的构造函数,然后为您的slot1()插槽创建实现。

您还可以在派生类中描述您的槽和信号,然后将它们与 QtDesigner 中的信号和槽连接起来。只需在设计器中添加现在插槽或信号时,根据您在代码中设置的名称重命名它们。

希望这会帮助你。如果您不能解决您的问题,请给我留言。我会尽力提供帮助。

于 2010-12-07T19:25:22.307 回答