c++ - Qt: resize(int,int) doesn't work properly -
qconnectorblob::qconnectorblob(qwidget *parent, bool type, qnodewidget *mypwidget, long myid, long connecttoid) : qradiobutton(parent) { setacceptdrops(true); this->setautoexclusive(false); mnodewidget = mypwidget; mtype = type; //resize android this->resize(40,40);
what i've update "this" resizes ? parent widget ? "this" widget ? or both ? how can cause redraw event 40x40 size ?
just tried widget-"sprite/image" dont alter size:
//resize android this->setfixedsize(40,40); this->setminimumsize(40,40); this->setmaximumsize(40,40); this->resize(40,40); this->repaint();
you resize qconnectorblob widget, not parent. doc:
size : qsize property holds size of widget excluding window frame. if widget visible when beingness resized, receives resize event (resizeevent()) immediately. if widget not visible, guaranteed receive event before shown. size adjusted if lies outside range defined minimumsize() , maximumsize(). default, property contains value depends on user's platform , screen geometry. warning: calling resize() or setgeometry() within resizeevent() can lead infinite recursion. note: setting size qsize(0, 0) cause widget not appear on screen. applies windows.
so can reimplement resizeevent , in event. can phone call repaint(), phone call paintevent, think resizeevent more suitable.
http://qt-project.org/doc/qt-4.8/qwidget.html#repaint
example of usage:
void mybutton::resizeevent(qresizeevent *event) { this->setstylesheet("qradiobutton {" "color: rgb("+qstring::number(qrand()%255)+","+qstring::number(qrand()%255)+","+qstring::number(qrand()%255)+");" "background-color: rgb("+qstring::number(qrand()%255)+","+qstring::number(qrand()%255)+","+qstring::number(qrand()%255)+')' +"}"); } button have new random color every resizing.
c++ qt user-interface resize
No comments:
Post a Comment