QGraphicsProxyWidget如何加入布局

baidu_28149975 2015-05-13 12:24:00
QGraphicsView自带scene里面的addwidget方法的返回值是QGraphicsProxyWidget,但是布局QGraphicsLinearLayout的addItem的方法需要QGraphicsWidget,加入类型不匹配。怎么办呢,QGraphicsProxyWidget如何加入布局。

QGraphicsWidget *label1,*label2,*label3,*label4;
QGraphicsWidget *line1,*line2,*line3,*line4;
QGraphicsWidget *button1,*button2,*button3,*button4;
QGraphicsWidget *titleLabel11,*titleLabel22;
QGraphicsWidget *grapWidget;
QLineEdit *userLine,*passwordLine,*setUserLine,*setPasswordLine;
QLabel *userLineText,*passwordLineText,*setUserLineText,*setPasswordLineText,;
QLabel *setTitleLabel,*setTitleLabe2;
QPushButton *loginBtn,*goRegisterBtn,*registerBtn,*goLoginBtn;



userLine=new QLineEdit;
passwordLine=new QLineEdit;
setUserLine=new QLineEdit;
setPasswordLine=new QLineEdit;
userLineText=new QLabel;
passwordLineText=new QLabel;
setUserLineText=new QLabel;
setPasswordLineText=new QLabel;
setTitleLabel=new QLabel;
setTitleLabe2=new QLabel;
loginBtn=new QPushButton;
goRegisterBtn=new QPushButton;
registerBtn=new QPushButton;
goLoginBtn=new QPushButton;

titleLabel11=view->scene()->addWidget(setTitleLabel);

label1=view->scene()->addWidget(userLineText);
line1=view->scene()->addWidget(userLine);
QHBoxLayout *loginSubLayout1 = new QHBoxLayout;
loginSubLayout1->addWidget(label1);
loginSubLayout1->addItem(line1);

label2=view->scene()->addWidget(passwordLineText);
line2=view->scene()->addWidget(passwordLine);
QGraphicsLinearLayout *loginSubLayout2 = new QGraphicsLinearLayout;
loginSubLayout2->addItem(label2);
loginSubLayout2->addItem(line2);

button1=view->scene()->addWidget(loginBtn);
button2=view->scene()->addWidget(goRegisterBtn);
QGraphicsLinearLayout *loginSubLayout3 = new QGraphicsLinearLayout;
loginSubLayout2->addItem(button1);
loginSubLayout2->addItem(button2);

QGraphicsLinearLayout *loginLayout = new QGraphicsLinearLayout;
loginLayout->addItem(titleLabel11);
loginLayout->addChildLayoutItem(loginSubLayout1);
loginLayout->addChildLayoutItem(loginSubLayout2);
loginLayout->addChildLayoutItem(loginSubLayout3);

grapWidget=new QGraphicsWidget;
setLayout(loginLayout);
view->scene()->addItem(grapWidget);

view->show();



...全文
665 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
遇到同样的问题,通过加QGraphicsProxyWidget头文件解决了。 感谢!!
baidu_28149975 2015-05-13
  • 打赏
  • 举报
回复
view 是 QGraphicsView
baidu_28149975 2015-05-13
  • 打赏
  • 举报
回复
本问题结束,自问自答,是没有加QGraphicsProxyWidget头文件所致,虽然我没有直接使用到QGraphicsProxyWidget,但是QGraphicsProxyWidget到QGraphicsWidget的转化需要使用这个头文件。
  • 打赏
  • 举报
回复
引用 3 楼 baidu_28149975 的回复:
[quote=引用 2 楼 dell_tx 的回复:] QGraphicsProxyWidget widget代理,用于将一个QWidget对象嵌入一个QGraphicsScene中
然后呢,我要把嵌入的QWidget对象加入布局中,应该怎么做[/quote] 我是想将 QGraphicsProxyWidget 嵌入到QGraphicsScene中 然后将QGraphicsScene添加到布局中你看看行吗 然后还有QGraphicsGridLayout 管理widgets在图形视图中的布局,你试试这个 不行的话 :QGraphicsLayoutItem 允许布局类管理的自定义对象
baidu_28149975 2015-05-13
  • 打赏
  • 举报
回复
引用 2 楼 dell_tx 的回复:
QGraphicsProxyWidget widget代理,用于将一个QWidget对象嵌入一个QGraphicsScene中
然后呢,我要把嵌入的QWidget对象加入布局中,应该怎么做
  • 打赏
  • 举报
回复
QGraphicsProxyWidget widget代理,用于将一个QWidget对象嵌入一个QGraphicsScene中

16,201

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧