小编The*_*hip的帖子

PyQt5 - 如何在 QMainWindow 类中显示图像?

我正在尝试在 QMainWindow 类中显示图片:

from PyQt5.QtWidgets import QLabel, QMainWindow, QApplication
from PyQt5.QtGui import QPixmap
import sys


class Menu(QMainWindow):

    def __init__(self):
        super().__init__()
        self.setWindowTitle("Title")
        label = QLabel(self)
        pixmap = QPixmap('capture.png')
        label.setPixmap(pixmap)
        self.resize(pixmap.width(), pixmap.height())
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Menu()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

但它不显示图像,只是打开窗口。我坚持QMainWindow上课是因为我正在尝试编写类似绘画应用程序的东西,因此我将能够编写菜单,并且我将能够在图片上书写。

任何建议,将不胜感激。

谢谢。

python qt python-3.x qmainwindow pyqt5

5
推荐指数
1
解决办法
2万
查看次数

tkinter - 形状不均匀,动画看起来很糟糕

今天开始玩python的tkinter并遇到了一些问题.我创建了一个动画,以给定的速度在屏幕上移动球.(当它击中屏幕时,它会返回)

  1. 为什么我的球看起来很糟糕?它的形状不均匀?(它像眨眼一样)

  2. 有没有更好的方法呢?

代码:

from tkinter import *
import time

WIDTH = 800
HEIGHT = 500
SIZE = 100
tk = Tk()
canvas = Canvas(tk, width=WIDTH, height=HEIGHT, bg="grey")
canvas.pack()
color = 'black'


class Ball:
    def __init__(self):
        self.shape = canvas.create_oval(0, 0, SIZE, SIZE, fill=color)
        self.speedx = 3
        self.speedy = 3

    def update(self):
        canvas.move(self.shape, self.speedx, self.speedy)
        pos = canvas.coords(self.shape)
        if pos[2] >= WIDTH or pos[0] <= 0:
            self.speedx *= -1
        if pos[3] >= HEIGHT or pos[1] <= 0:
            self.speedy *= -1

ball …
Run Code Online (Sandbox Code Playgroud)

python tkinter

3
推荐指数
1
解决办法
448
查看次数

如果X次失败,则nodejs重试功能

我希望我的函数执行X(= 3)次直到成功。

在我的情况下,我正在运行kinesis.putRecord(通过AWS API),如果失败了-我想再次运行它直到成功为止,但是尝试不超过3次。

我是NodeJS的新手,我写的代码很难闻。

const putRecordsPromise = function(params){
    return new Promise((resolve, reject) => {
        kinesis.putRecord(params, function (err, data) {
            resolve(err)
        });
    })
}

async function waterfall(params){
    try{
        let triesCounter = 0;
        while(triesCounter < 2){
            console.log(`try #${triesCounter}`)
            let recordsAnswer = await putRecordsPromise(params)
            if(!recordsAnswer){
                console.log("success")
                break;
            }
            triesCounter += 1;
        }
        // continue ...

    } catch(err){
        console.error(err)
    }
}

waterfall(params)
Run Code Online (Sandbox Code Playgroud)

我保证会得到错误的结果。之后,如果err为空,则一切正常。否则,继续运行相同的命令。

我敢肯定有更聪明的方法可以做到这一点。任何帮助,将不胜感激。

callback amazon-web-services node.js promise async-await

1
推荐指数
2
解决办法
251
查看次数