实际写UI是很简短的,其实写UI是很粗略的

 那是自我在项目实战中的个人总括,写的仓促,有些东西也不必然标准,有些是团结揣摸的,还愿意各位多多指教,多多评论。

 那是本身在项目实战中的个人总括,写的仓促,有些东西也不自然标准,有些是友好推测的,还可望各位多多指教,多多评论。

 关于QCombox倘诺不必要自定义,其实写UI是很粗略的。

 关于QCombox倘使不必要自定义,其实写UI是很粗略的。

创办实例:QComboBox*  m_pMicrophoneCombox = new QComboBox;

创造实例:QComboBox*  m_pMicrophoneCombox = new QComboBox;

自己是用的QSS去的写样式,这里用了一个命名函数:m_pMicrophoneCombox->setObjectName(“DeviceCombox”);

自我是用的QSS去的写样式,这里用了一个命名函数:m_pMicrophoneCombox->setObjectName(“DeviceCombox”);

若是是用的setstylesheet直接在代码里去写就好了。

一旦是用的setstylesheet间接在代码里去写就好了。

下边说多少个特性函数:

上边说多少个特性函数:

m_pMicrophoneCombox->set马克斯VisibleItems(2);//最大可知区域为显示两条。

m_pMicrophoneCombox->setMaxVisibleItems(2);//最大可见区域为显示两条。

m_pMicrophoneCombox->setEditable(false); //设置QComboBox可编辑。

m_pMicrophoneCombox->setEditable(false); //设置QComboBox可编辑。

m_pMicrophoneCombox->setFocusPolicy(Qt::NoFocus);//设置QCombox不是难点。

m_pMicrophoneCombox->setFocusPolicy(Qt::NoFocus);//设置QCombox没有典型。

m_pMicrophoneCombox->setLineEdit(edit);//edit是一个lineedit,就是说QCombox的LineEdit可以自定义,而QT的源码中,顶端也是一个LineEdit。

m_pMicrophoneCombox->setLineEdit(edit);//edit是一个lineedit,就是说QCombox的LineEdit可以自定义,而QT的源码中,顶端也是一个LineEdit。

m_pMicrophoneCombox->setCurrentIndex(0); // 设置当前当选的目录。

m_pMicrophoneCombox->setCurrentIndex(0); // 设置当前入选的目录。

m_pMicrophoneCombox->setCurrentText(TR_TALK_DEVICE_COMBOX);//设置QCombox当前的体现text,我是用宏封装的,满足前期修改。

m_pMicrophoneCombox->setCurrentText(TR_TALK_DEVICE_COMBOX);//设置QCombox当前的呈现text,我是用宏封装的,满意后期修改。

m_pMicrophoneCombox->setItemData(i,
list[i]);//QCombox也得以自己传入一个链表,并且自己定义索引,当然,你想传一条数据,并且自己定义索引。

m_pMicrophoneCombox->setItemData(i,
list[i]);//QCombox也能够协调传入一个链表,并且自己定义索引,当然,你想传一条数据,并且自己定义索引。

QListWidget* pListWidget = new QListWidget();//new一个widget的实例。

QListWidget* pListWidget = new QListWidget();//new一个widget的实例。

m_pMicrophoneCombox->setModel(pListWidget->model());//塞进widget的model。
m_pMicrophoneCombox->setView(pListWidget);//将widget装进Combox。

m_pMicrophoneCombox->setModel(pListWidget->model());//塞进widget的model。
m_pMicrophoneCombox->setView(pListWidget);//将widget装进Combox。

m_pMicrophoneCombox->count();//用来测算combox下拉窗体的尺寸。

m_pMicrophoneCombox->count();//用来测算combox下拉窗体的高低。

m_pMicrophoneCombox->addItems(list);//插入一个列表。

m_pMicrophoneCombox->addItems(list);//插入一个列表。

m_pMicrophoneCombox->addItem(“111”);//插入单条数据。

m_pMicrophoneCombox->addItem(“111”);//插入单条数据。

如上函数基本满意工作须求,若是交互的体制相比较复杂,必要自定义样式,那样的话,大家就要自己去写每一个item的样式。

如上函数基本满足工作必要,假若交互的体制相比较复杂,必要自定义样式,那样的话,我们就要协调去写每一个item的样式。

剖析下QCombox的源码,其实他的兑现就是一个LineEdit和一个ListWidget,知道啊这么些就足以自己去重新写一个ListWidget。

浅析下QCombox的源码,其实他的落到实处就是一个LineEdit和一个ListWidget,知道啊这一个就可以协调去重新写一个ListWidget。

Item *pItem = new Item();
//item是投机自定义写的布局,每一个item的自定义样式就足以写在这些里面。
QListWidgetItem *pListWidgetItem = new
QListWidgetItem(list[i],pListWidget);//我是将链表的数量塞进QCombox里。
pItem->setItemData(list[i]);//给每一个item塞进多少
pListWidget->setItemWidget(pListWidgetItem,
pItem);//关于那个函数我的知晓是:在底下一层上面再覆盖一层。

Item *pItem = new Item();
//item是上下一心自定义写的布局,每一个item的自定义样式就足以写在那一个里面。
QListWidgetItem *pListWidgetItem = new
QListWidgetItem(list[i],pListWidget);//我是将链表的数目塞进QCombox里。
pItem->setItemData(list[i]);//给每一个item塞进多少
pListWidget->setItemWidget(pListWidgetItem,
pItem);//关于那一个函数我的知道是:在底下一层上面再覆盖一层。

下一场在QSS的体裁里写hover、pressed鼠标事件,就有鼠标的竞相。

接下来在QSS的样式里写hover、pressed鼠标事件,就有鼠标的相互。

这种措施即便实惠,可是数量不与UI分离,都搅在一团。

那种方法即使实惠,可是数量不与UI分离,都搅在一团。

拔尖的方案就是:

极品的方案就是:

  既然QT的combox帮衬listwidget,那么整体都用自己定制的listwidget。

  既然QT的combox协助listwidget,那么全体都用自己定制的listwidget。

 在itemwidget里写布局,自己搞一个delegate,在代理去管理UI,数据在model里去操作,那里的model可能要自己包装一层,满足combox的并行要求。

 在itemwidget里写布局,自己搞一个delegate,在代理去管理UI,数据在model里去操作,那里的model可能要团结包裹一层,知足combox的并行必要。

pListWidget->m_pModel->Append(list[i]);//将每一个多少塞进model,剩下的数额操作就由model去管理。

pListWidget->m_pModel->Append(list[i]);//将每一个数码塞进model,剩下的数量操作就由model去管理。

新鲜注意的是:那个时候,qt原生的那个接口都不见效了,例如:setcurrenttext还有setcurrentindex,查看源码发现都是依照索引来操控,而实质上,大家用自己的model

尤其注意的是:这一个时候,qt原生的那么些接口都不见效了,例如:setcurrenttext还有setcurrentindex,查看源码发现都是依据索引来操控,而事实上,大家用自己的model

去管理的多寡,并不会生成一个索引来满意combox管理的数量,所以这一个对外的接口可能也要协调去封装出来,可以说基本上是割舍了combox,自己去组装LineEdit和ListWidget。

去管理的数量,并不会变动一个索引来满足combox管理的数目,所以那么些对外的接口可能也要协调去封装出来,可以说基本上是割舍了combox,自己去组装LineEdit和ListWidget。

实质上代码量是广大的,公司事务可以去封装成控件,方便开发。

实则代码量是比比皆是的,企业事务可以去封装成控件,方便开发。

    最后,假若大神们有更好的情势,欢迎评论。

    最终,假设大神们有更好的办法,欢迎评论。

 

 

 

 

网站地图xml地图