我需要使Qlabel
可点击,基本上我用来在我的主窗口中显示图像,通过谷歌搜索我发现我需要为Qlabel
创建一个子类,根据此链接{ {3}}。
我的问题是如何在我的UI设计器中使用这个自定义类,是否可能?或者我只能通过代码管理这个UI元素?
任何帮助将不胜感激..
由于 哈里斯
答案 0 :(得分:2)
在Qt Desiger内部,你必须创建一个QLabel
,然后将其“推广”到ClickableLabel
类。
为此,右键单击窗口小部件中实例化的QLAbel对象,选择“Promote widget ...”并指定ClickableLabel
类名称和定义它的头文件的路径。
请注意,ClickableLabel
的标头和源文件都必须是Qt项目的一部分。
这应该只是工作!
答案 1 :(得分:1)
使用您提供的链接,我创建了main()
,如下所示:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow *w = new MainWindow;
ClickableLabel *MyLable = new ClickableLabel("Amol",w);
MyLable->show();
w->show();
return a.exec();
}
重要的一点是,在自定义窗口小部件时,您需要将parent pointer
传递给自定义窗口小部件,即MainWindow
。自定义小部件后,您需要以编程方式提供其所有属性。请在项目中为.h
课程添加相应的.cpp
和ClickableLabel
。
希望这对你有所帮助。
答案 2 :(得分:1)
我认为UI设计师会引用QT Creator ......
您可以按照以下方式将标准QLabel提升为可点击标签:
创建ClickableLabel -class。
在QT Creator中创建标准QLabel -widget。
在表单编辑器中单击新QLabel小部件顶部的鼠标右键,然后选择“升级到”。
将先前创建的ClickableLabel -class的名称输入到Promoted类名称-field。该对话框还会根据类的名称自动填充头文件-field。
按添加按钮。
从列表中选择一个新的提升类,然后按“提升”按钮。
现在,在步骤2中创建的QLabel小部件实际上是ClickableLabel-object。