小编eyl*_*esc的帖子

PyQt5中的installEventFilter

我正在尝试在PyQT5中实现一个事件,但出现此错误:

TypeError: installEventFilter(self, QObject): argument 1 has unexpected type 'MainWindow_EXEC'
Run Code Online (Sandbox Code Playgroud)

这是我的代码

import sys
from time import sleep
from PyQt5 import QtCore, QtWidgets
from view_cortes2 import Ui_cortes2enter

class MainWindow_EXEC():
def __init__(self):
    app = QtWidgets.QApplication(sys.argv)
    cortes2 = QtWidgets.QMainWindow()
    self.ui = Ui_cortes2()
    self.ui.setupUi(cortes2)
    self.flag = 0
    self.ui.ledit_corteA.installEventFilter(self)
    self.ui.ledit_corteB.installEventFilter(self)
    self.ui.buttonGroup.buttonClicked.connect(self.handleButtons)
    cortes2.show()
    sys.exit(app.exec_())

def eventFilter(self, source, event):
    if (event.type() == QtCore.QEvent.FocusIn and source is self.ui.ledit_corteA):
        print("A")
        self.flag = 0
    if (event.type() == QtCore.QEvent.FocusIn and source is self.ui.ledit_corteA):
        print("B")
        self.flag = 1
    return super(cortes2, self).eventFilter(source, event) …
Run Code Online (Sandbox Code Playgroud)

python pyqt qt-designer pyqt5 eventfilter

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

使用python编写json文件

我正在尝试使用python脚本读取和编写json文件(我在shell脚本中嵌入了这个python块)

test.json

{
  "environments": ["dev", "qa", "load", "prod"],
  "region": ["asia", "europe", "americas", "asia-pacific"],
  "product": ["mobile", "internet", "kiosk", "branch"],
  "ID": ["mobile:111", "internet:222", "kiosk:333", "branch:444"]
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试添加区域(英国),在此之前我想检查并添加它是否在列表中不可用.下面是我的python代码,我可以更新值

reg_val="uk"

a_dict = {}
try:
    with open('test.json') as data_file:
        data = json.load(data_file)
        temp_list = []
        for dicObj in data["region"]:
            temp_list.append(dicObj)
        temp_list.append(reg_val)
        data["region"] = temp_list
        a_dict["region"] = data["region"]
        with open('test.json','w') as f:
            f.write(json.dumps(a_dict, indent=4, sort_keys=True, encoding="utf-8"))
except IOError as io:
    print "ERROR: ", io
Run Code Online (Sandbox Code Playgroud)

我能够更新json文件,但它删除了其他列表.我看到的输出是

{
    "region": [
        "asia", 
        "europe", 
        "americas", 
        "asia-pacific", 
        "uk"
    ]
}
Run Code Online (Sandbox Code Playgroud)

python json

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

根据列表索引绘制列表值

我有一个列表列表,其中每个列表包含一些数字,比方说

t = [[5,6,1],[4,6,33],[6,33,5,10],[1,2],[1,22,44,3]]
Run Code Online (Sandbox Code Playgroud)

使用python3我想根据这个特定的列表索引绘制每个列表值,在上面的例子中我应该有x轴从1到3,y轴从1到50,标记在(1,5),(1) ,6),(1,1),(2,4),(2,6)......

这是我的代码

x = list(range(3))
y = [[5,6,1],[4,6,33],[6,33,5,10],[1,2],[1,22,44,3]]


for i in range(len(x)):
    purchases = y[i]
    for j in range(len(purchases)):
        plt.scatter(x,purchases)
Run Code Online (Sandbox Code Playgroud)

它正确绘制前两个索引然后我得到错误:

x和y必须大小相同

输出图像

这样做的正确方法是什么?

python matplotlib

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

检测像素是否为红色

我们可以如下定义 HSV 中红色的范围。我想检测某个像素是否是红色的?我怎样才能在Python中做到这一点?我花了一整天,但无法找到解决方案。请解决我的问题。我对 Python 很陌生。我正在使用的代码是:

img=cv2.imread("img.png")
img_hsv=cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# lower mask (0-10)
lower_red = np.array([0,50,50])
upper_red = np.array([10,255,255])
mask0 = cv2.inRange(img_hsv, lower_red, upper_red)

# upper mask (170-180)
lower_red = np.array([170,50,50])
upper_red = np.array([180,255,255])
mask1 = cv2.inRange(img_hsv, lower_red, upper_red)
image_height,image_width,_=img.shape    
for i in range(image_height):
   for j in range(image_width):
       if img_hsv[i][j][1]>=lower_red and img_hsv[i][j][1]<=upper_red:
          print("Found red")
Run Code Online (Sandbox Code Playgroud)

python opencv numpy image-processing hsv

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

如何使用 QML 创建启动画面

我正在尝试使用 QT 开发一个 android 应用程序。我想在应用程序开始时显示启动画面。启动画面将在那里停留 2 秒钟,然后将显示应用程序的主页。为此,我创建了 2 个 .qml 文件。

飞溅.qml

import QtQuick 2.9
import QtQuick.Controls 2.2
import QtQuick.Window 2.3

Window {
    id: window
    visible: true
    width: Screen.width
    height: Screen.height
    signal timeout

    Image {
        id: image
        anchors.horizontalCenter: parent.horizontalCenter
        anchors.verticalCenter: parent.verticalCenter
        width: 300
        height: 300
        source: "qrc:/../Desktop/photo_2018-03-21_19-53-06.jpg"
    }

    Text {
        id: text1
        y: image.height + image.y + 20
        text: qsTr("@startimeahmet Presents")
        anchors.horizontalCenter: parent.horizontalCenter
        font.pixelSize: 25
    }

    Timer {
        interval: 2000; running: true; repeat: false
        onTriggered: {
            visible = false
            window.timeout() …
Run Code Online (Sandbox Code Playgroud)

qt splash-screen qml

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

如何用逗号将字符串拆分为数组但忽略括号中的逗号

我有一个包含 3 行的字符串:

a VARCHAR(20),
b FLOAT, c FLOAT,
d NUMBER(38,0), e NUMBER(38,0)
Run Code Online (Sandbox Code Playgroud)

需要根据逗号分隔符将字符串拆分为数组,但忽略括号中的逗号。

最终输出是包含 5 个元素的数组:

s_arr = ['a VARCHAR(20)', 'b FLOAT', 'c FLOAT', 'd NUMBER(38,0)', 'e NUMBER(38,0)']
Run Code Online (Sandbox Code Playgroud)

到目前为止我已经s_arr = s.split(",")

如何实现这一目标?

python regex arrays

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

在 qtablewidget 中突出显示搜索结果(选择并突出显示该文本或字符,而不是所有行或列)

我使用 method1 在 qtablewidget 行中查找一些文本。方法一:

def FindItem(self):
    items = self.SuraBRS.findItems(
        self.SearchTbox.text(), QtCore.Qt.MatchContains)
    if items:
        results = '\n'.join(
            'row %d column %d' % (item.row() + 1, item.column() + 1)
            for item in items)
    else:
        results = 'Found Nothing'
    print(results)
Run Code Online (Sandbox Code Playgroud)

现在我想知道如何突出显示结果或更改其颜色。我想选择并突出显示该文本或字符,而不是所有行或列

python pyqt qtablewidget python-3.x pyqt5

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

让 Enter 键的行为类似于 QTableWidget 中的 Tab

我在 PyQt5 和 Qt Designer 中使用 QTableWidget 来创建数据输入表。我想要的是一种简单的方法,使“Enter”keyPressEvent 在表格中移动,就像按下 Tab 按钮一样。以下代码捕获 Enter 键按下事件。如何让它移动光标?

def keyPressEvent(self, ev):        
    if ev.key() in (QtCore.Qt.Key_Return, QtCore.Qt.Key_Enter):
        print("Enter key pressed")
Run Code Online (Sandbox Code Playgroud)

python pyqt qtablewidget pyqt5

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

使用 Pandas DataFrame 的饼图

我正在使用 Jupyter 笔记本,它在离线模式下绘制条形图没有问题。

我有一个读取 CSV 文件的 Pandas 数据框,我想在 Plotly(离线模式)中快速创建一个饼图。

如果省略,则绘制饼图值 ( https://plot.ly/python/reference/#pie-values ) 计算标签。这就是我所希望的。我想直接从我的熊猫数据框中设置饼图标签(https://plot.ly/python/reference/#pie-labels)。

我的代码:

import plotly as py
import plotly.graph_objs as go
import pandas as pd
from plotly.offline import init_notebook_mode

init_notebook_mode()

df2 = pd.read_csv("./testdata.csv")

trace = go.Pie(
    labels= df2["Vendor"]
)

py.offline.plot(trace, filename='pdq_pie_chart.html')
Run Code Online (Sandbox Code Playgroud)

尝试此操作时出现错误:

PlotlyError: The `figure_or_data` positional argument must be `dict`-like, `list`-like, or an instance of plotly.graph_objs.Figure
Run Code Online (Sandbox Code Playgroud)

在 go.Pie 调用之前,我是否错过了什么?我故意没有进入任何格式选项,并希望使用尽可能少的数据帧代码生成饼图。

python pandas plotly python-3.6

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

PyQt5 不将设置保存到 ini 文件

对于应用程序,我需要读取/写入 .ini 文件中的值。我在 windows7 上使用 python3 和 pyqt5 并得到了这个小例子:

import os
from PyQt5.QtCore import QSettings

ini_str = """[mysection]
key0=value0
"""

with open("test.ini", "w") as fi:
    fi.write(ini_str)

inidict = {
    "mysection/key1" : "value1",
    "myothersection/key2" : "value2"
}


settings = QSettings("test.ini", QSettings.IniFormat)

for k in settings.allKeys():
    print(k, settings.value(k))

for k in inidict.keys():
    settings.setValue(k, inidict[k])
Run Code Online (Sandbox Code Playgroud)

从我的 ini 文件中读取值可以工作,但是设置值(如第二个 for 循环)则不行,值不会保存到 ini 文件中。所以,我想我在这里遗漏了一些东西?

python pyqt python-3.x qsettings pyqt5

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