绝对背景透明的Label

看了不少所谓的透明标签,都是假的。相对父控件透明 并不是真正的透明。这个才是真的,如假包换。   

 class SuLabel : Label

    {

        public SuLabel()

        {

 

        }

 

        protected override void OnPaint(PaintEventArgs e)

        {

            int fontstyleIndex = 0;

            fontstyleIndex = (int)Font.Style;

            BackColor = ForeColor;

            GraphicsPath gp = new GraphicsPath();

            gp.AddString(Text, Font.FontFamily, fontstyleIndex, Font.Size, ClientRectangle, StringFormat.GenericDefault);

            this.Region = new Region(gp);

            gp.Dispose();

        }

    }

 

绝对原创,转载注明出处。。。。。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在PyQt5中设置窗口的背景图片有多种方法。 第一种方法是使用QPixmap和QPalette来设置。首先,我们需要创建一个QPixmap对象,将我们想要的图片加载进去,可以使用QPixmap的fromImage()方法来加载图片。接下来,创建一个QPalette对象,调用setBrush()方法将背景色设置为空,然后使用setBrush()方法将背景图片设置为我们刚加载的QPixmap对象。最后,通过调用setPalette()方法将QPalette对象应用到窗口上。例如: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QPixmap, QPalette class MyWindow(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): # 创建QPixmap并加载图片 pixmap = QPixmap("background.jpg") # 创建QPalette对象 palette = QPalette() palette.setBrush(self.backgroundRole(), QBrush(pixmap)) # 将QPalette对象应用到窗口上 self.setPalette(palette) self.setGeometry(300, 300, 300, 200) self.setWindowTitle('Background Image') self.show() if __name__ == '__main__': app = QApplication(sys.argv) win = MyWindow() sys.exit(app.exec_()) ``` 另外,还可以直接将背景图片设置为一个QWidget的背景,然后将这个QWidget作为窗口的背景,这样可以实现更复杂的背景效果。例如: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel from PyQt5.QtGui import QPixmap class MyWindow(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): # 创建一个QWidget作为窗口背景 background = QWidget(self) # 创建QLabel并加载图片 label = QLabel(background) pixmap = QPixmap("background.jpg") label.setPixmap(pixmap) label.resize(pixmap.size()) self.setGeometry(300, 300, 300, 200) self.setWindowTitle('Background Image') self.show() if __name__ == '__main__': app = QApplication(sys.argv) win = MyWindow() sys.exit(app.exec_()) ``` 以上就是两种常见的PyQt5设置窗口背景图片的方法,选择合适的方法来实现你想要的效果。 ### 回答2: 在PyQt5中设置窗口的背景图片可以通过QPalette类和setTextureBackground方法来实现。首先,我们需要导入相应的模块: ``` from PyQt5.QtWidgets import QApplication, QMainWindow from PyQt5.QtGui import QPalette, QBrush, QPixmap from PyQt5.QtCore import Qt ``` 然后,在创建主窗口(QMainWindow)的时候,可以使用setTextureBackground方法来设置窗口的背景图片。下面是一个简单的例子: ``` class MyMainWindow(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowTitle("窗口背景图片") # 创建QPalette对象并设置背景图片 palette = QPalette() palette.setBrush(QPalette.Background, QBrush(QPixmap("background.jpg"))) # 将QPalette对象应用到窗口 self.setPalette(palette) if __name__ == '__main__': app = QApplication([]) window = MyMainWindow() window.show() app.exec_() ``` 在上面的例子中,我们使用了一张名为"background.jpg"的图片作为窗口的背景。你可以将图片放在与脚本文件相同的目录下,也可以指定图片的绝对路径。 通过以上步骤,我们成功地将背景图片应用到了窗口中。需要注意的是,这种方式设置的背景图片会随着窗口的缩放而自动拉伸或压缩,以适应窗口的大小。如果你希望保持背景图片的原始比例,可以通过其他方法进行设置。 ### 回答3: 在PyQt5中,我们可以通过设置窗口的样式表(StyleSheet)来设置窗口的背景图片。 首先,我们需要导入QtGui模块中的QPixmap类,以及QtWidgets模块中的QApplication和QWidget类。然后,我们可以创建一个QApplication对象和一个QWidget对象,将QWidget对象设置为主窗口。 接下来,我们可以通过QPixmap类加载一张图片,并将其设置为窗口的背景图片。可以使用setCentralWidget方法将QWidget对象设置为窗口的中心部件。 具体的代码如下: ``` from PyQt5.QtGui import QPixmap from PyQt5.QtWidgets import QApplication, QWidget app = QApplication([]) window = QWidget() window.setWindowTitle('窗口背景图片示例') # 加载图片 pixmap = QPixmap('background.jpg') # 替换为实际的图片路径 # 设置背景图片 window.setFixedSize(pixmap.width(), pixmap.height()) window.setCentralWidget(QWidget(window)) window.centralWidget().setStyleSheet(f"background-image: url({pixmap.toImage()});") # 显示窗口 window.show() app.exec() ``` 上述代码中的文件`background.jpg`应该替换为你希望设置为窗口背景的图片的路径。 通过上述代码,我们可以设置一个具有背景图片的PyQt5窗口。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值