昨天小弟在做一个类似QcomboBox的功能,遇到的问题可谓是多如牛毛。
最难受的就是想在子控件QLineEdit里面又new了一个子控件,QListWidget。
但是想让QListWidget的父窗口和QLineEdit的父窗体都是QWidget,怎么做呢?
于是上网就搜啊搜啊,也没找到对应的。最后小弟灵机一动。写出下面的试试:
GComboBox::GComboBox(int posx , int posy ,int width , int height , QWidget *parent)
: QLineEdit(parent)
{
//设置编辑框大小
setGeometry(posx , posy , width, height);
//设置接收点击和TAB键切换焦点
setFocusPolicy(Qt::StrongFocus);
//设置只读
setReadOnly(true);
//设置默认无焦点
//字体
QFont font;
font.setPixelSize(22);
this->setFont(font);
//下拉列表框
m_dropDownList = new GListWidget(this->width() , this->height()*5 , parent);
m_dropDownList->setGeometry(this->pos().x() , this->pos().y()+30 , this->width(),this->height()*5);
//设置编辑框的QSS
initStyleSheet();
//初始化组合框
initGComboBox();
//注册事件过滤器
installEventFilter(this);
}
注意红色部分。试了之后,果然OK。