Issue
I wonder if there is there a way to round Qt widget corners?
from PyQt4 import QtCore, QtGui
class Custom(QtGui.QWidget):
def __init__(self, *args, **kwargs):
QtGui.QWidget.__init__(self, *args, **kwargs)
self.setWindowOpacity(0.9)
self.setWindowFlags(QtCore.Qt.Popup|QtCore.Qt.FramelessWindowHint)
self.setWindowTitle('Custom')
self.resize(440,220)
self.move(QtGui.QCursor.pos())
def closeEvent(self, event):
event.accept()
sys.exit(app.exec_())
def mousePressEvent(self, event):
self.close()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
w = Custom()
w.show()
sys.exit(app.exec_())
Solution
You can use QWidget.setMask(self, QRegion)
for it.
An example in C++:
QWidget *widget = new QWidget;
widget->resize(300, 200);
const int radius = 10;
QPainterPath path;
path.addRoundedRect(widget->rect(), radius, radius);
QRegion mask = QRegion(path.toFillPolygon().toPolygon());
widget->setMask(mask);
widget->show();
Answered By - hank
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.