QMenu我在尝试连接到单个方法时有一些操作;还有一些不相关的其他操作。
import sys
from PyQt5.QtWidgets import *
class Window(QWidget):
def __init__(self):
super(Window, self).__init__()
layout = QGridLayout(self)
self.menu_bar = QMenuBar()
self.menu = QMenu('MENU', self)
self.menu_action = QAction('Option #1', self)
self.menu_action.setData('option1')
self.menu_action.triggered.connect(self.actionClicked)
self.menu.addAction(self.menu_action)
self.menu_bar.addMenu(self.menu)
layout.addWidget(self.menu_bar)
def actionClicked(self, action):
print(action)
try:
print(action.text())
except AttributeError as e:
print(e)
try:
print(action.data())
except AttributeError as e:
print(e)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Window()
window.setGeometry(600, 100, 300, 100)
window.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
我想知道在调用该方法时如何知道单击了哪些操作。目前,我正在尝试self.menu_action.setData()为该操作提供一个更清晰的接收方法名称,但这似乎无法正常工作。
我正在尝试获取屏幕位置QMainWindow和print位置 (x,y) 值。我已经尝试了这两个self.pos()和self.mapToGlobal(self.pos())这两个 return 0。
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.resize(400, 200)
# PRINTS 0 0
print(self.pos().x(), self.pos().y())
# PRINTS 0 0
print(self.mapToGlobal(self.pos()).x(), self.mapToGlobal(self.pos()).y())
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
我正在使用 Python 3.7 和 PyQt 5.11,我该如何实现?
我是 Python 和 BeautifulSoup 的新手,所以请耐心等待......
我正在尝试弄清楚如何使用 Beautifulsoup4 从 HTML 文件中删除 Doctype,但似乎无法确切地弄清楚如何实现这一点。
def saveToText(self):
filename = os.path.join(self.parent.ReportPath, str(self.parent.CharName.text()) + "_report.txt")
filename, filters = QFileDialog.getSaveFileName(self, "Save Report", filename, "Text (*.txt);;All Files (*.*)")
if filename is not None and str(filename) != '':
try:
if re.compile('\.txt$').search(str(filename)) is None:
filename = str(filename)
filename += '.txt'
soup = BeautifulSoup(self.reportHtml, "lxml")
try: # THROWS AttributeError IF NOT FOUND ..
soup.find('font').extract()
except AttributeError:
pass
try: # THROWS AttributeError IF NOT FOUND ..
soup.find('head').extract()
except AttributeError:
pass
soup.html.unwrap()
soup.body.unwrap() …Run Code Online (Sandbox Code Playgroud) 我是 PHP 新手,所以请原谅这个问题。
我想知道 PHP 是否有字符串格式函数,例如 Python 的 f-strings 函数,而不是 str.format()。我看过一些关于这个主题的帖子,但大多数被接受为答案的例子是指 Python 处理格式化字符串的旧方式str.format()。在我的情况下,我想使用格式化的字符串构建一个变量,例如(Python):
f_name = "John"
l_name = "Smith"
sample = f`{f_name}'s last name is {l_name}.`
print(sample)
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用(PHP):
$num = 5;
$location = 'tree';
$format = 'There are %d monkeys in the %s';
echo sprintf($format, $num, $location);
Run Code Online (Sandbox Code Playgroud)
但是如果我想$format用作变量呢?主要思想是基于其他变量创建一个动态变量,例如:
$db_type = $settings['db_type']; # mysql
$db_host = $settings['db_host']; # localhost
$db_name = $settings['db_name']; # sample
var $format = "%s:host=%s; dbname=%s";
# Not sure what to do after that, …Run Code Online (Sandbox Code Playgroud) 是否可以删除使用添加到状态栏的两个小部件之间的分隔线.addPermanentWidget()?我怀疑这是可能的,但我还没有真正找到任何关于如何进行的文献。
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QStatusBar, QLabel
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
statusBar = QStatusBar()
self.setStatusBar(statusBar)
statusBar.addPermanentWidget(QLabel("Label: "))
statusBar.addPermanentWidget(QLabel("Data"))
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
我有一段使用 Python3 和 PyQt5 打开 QFileDialog 的代码块:
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QFileDialog
import sys
class MCVE(QWidget):
def __init__(self):
super().__init__()
self.initialize()
def initialize(self):
self.setWindowTitle('MCVE')
self.setGeometry(50, 50, 400, 200)
btn = QPushButton('Example', self)
btn.clicked.connect(self.clicked)
self.show()
def clicked(self):
filename = QFileDialog.getOpenFileName(
self, "Open Template", "c:\\",
"Templates (*.xml);;All Files (*.*)")
print(filename)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MCVE()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
在使用 PyQt4 的 Python 2 中,按下取消按钮后 print(filename) 语句输出为空字符串。当我使用 PyQt5 在 Python 3 中运行相同的代码时,我得到:
('', '')
注意:引号是单引号
有人能解释一下发生了什么事吗?我在 PyQt4 和 PyQt5 …
我对 Python 还很陌生,所以请耐心等待。我试图从元组填充 QTreeWidget,但我似乎无法让它太工作。
TreeList = ({
'Header1': ((
'Item1',
'Item2',
)),
'Header2': ((
'Item1',
'Item2'
))
})
Run Code Online (Sandbox Code Playgroud)
这个想法是我想创建一个 QTreeWidget 看起来像:
ROOT
|
|-- Header1
| |-- Item1
| |-- Item2
|
|-- Header2
|-- Item1
|-- Item2
Run Code Online (Sandbox Code Playgroud)
我一直在网上搜索以找到解决方案,但我尝试的任何方法似乎都不起作用,解决此问题的最佳方法是什么。
widget = QTreeWidget()
for i in TreeList:
val = QTreeWidgetItem([i])
widget.addTopLevelItem(val)
for i in TreeList['Header1']
val = QTreeWidgetItem([i])
widget.Header1.addChild(val) # DONT THINK THIS IS RIGHT
for i in TreeList['Header2']
val = QTreeWidgetItem([i])
widget.Header2.addChild(val) # DONT THINK THIS IS RIGHT
Run Code Online (Sandbox Code Playgroud)
第一个 for …
我想知道如何在 QTreeView 中返回文本值和所选项目的索引。我尝试使用:
self.TreeView.selectedIndexes()
Run Code Online (Sandbox Code Playgroud)
但这会返回一个 QModelIndex。我不确定如何将其转换为整数值。谷歌搜索,我也没有真正找到任何关于获取文本值的信息。有任何想法吗?
对不起,如果这是一个基本知识问题。我是 python 新手,自学。在 Java 中,大多数对象都可以被强制转换,但我不确定在 Python 中 QObjects 是如何工作的。
我目前正在使用 Python 3.6 和 PyQt5
我遇到一个问题,从PHP查询返回的JSON无效,我不确定为什么; 我还在学习.当datatype排除时,以下代码返回:
{"Customer_ID":"0", "FirstName":"John", "LastName":"Smith"}
{"Customer_ID":"1", "FirstName":"Jane", "LastName":"Smith"}
Run Code Online (Sandbox Code Playgroud)
否则它返回:
SyntaxError: "JSON.parse: unexpected non-whitespace character after ..."
Run Code Online (Sandbox Code Playgroud)
我认为这可能是因为记录没有在单个JSON响应中返回,但我不能看到这是问题,因为并发响应是JSON.有任何想法吗?有什么建议?随意指出语义问题.
HTML:
getRecord("*", "customer", "");
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
function getRecord(field, table, condition) {
var request = $.ajax({
url: "./handler.php",
method: "GET",
dataType: "JSON",
cache: "false",
data: {
action: "SELECT",
field: `${field}`,
table: `${table}`,
condition: `${condition}`,
},
});
request.done(function(data, status, xhr) {
console.log(data, status, xhr);
});
request.fail(function(xhr, status, error) {
console.log(xhr, status, error);
});
};
Run Code Online (Sandbox Code Playgroud)
PHP:
<?php
# IMPORT SETTINGS.
include "settings.php";
# FUNCTION DISPATCHER. …Run Code Online (Sandbox Code Playgroud) 是否可以在不使用传统循环执行复制的情况下.push()将值复制到数组但复制推送的值n时间?例如使用.fill(). 我看到的例子声明了new Array()一个长度为n,.fill()它有一个值。但是,我还没有看到任何处理 的例子.push(),所以我什至不确定这是否可能。
我正在寻找的示例:
var my_array = [];
for (var i = 0; i < 5; i++) {
my_array.push(5);
};
Run Code Online (Sandbox Code Playgroud)
设想:
我正在从三个不同的数组或对象中提取值以填充将通过 Munkres(匈牙利)算法运行的单个矩阵,以避免引入另一个循环我想将.push值添加到矩阵并用于.fill()重复值n时间.
例子:
var s = […];
var a = […];
var p = […];
var matrix = [];
for (var i = 0; i < s.length; i++) {
var preferences = [];
for (var j = 0; …Run Code Online (Sandbox Code Playgroud) 我试图从3行简化链式比较:
if -10 < amount < 10: # amount can range from -999 to 999
width = 3
else:
width = 2
Run Code Online (Sandbox Code Playgroud)
到一行表达式:
width = 3 if (-10 < amount < 10) else width = 2
Run Code Online (Sandbox Code Playgroud)
Pycharm抛出一个 SyntaxError
SyntaxError:无法分配给条件表达式
什么是纠正写的方式简化这个陈述?我试过了:
width = 3 if (-10 < amount) else width = 2
Run Code Online (Sandbox Code Playgroud)
但我收到同样的错误.我正在使用Python 3.谢谢.
在我问之前 关于这个特定主题有很多讨论,其中大多数与ES5有关,并不一定对ES6成立。我正在尝试澄清一些问题,也许可以帮助下一个正在互联网上寻找答案的人。具体参考ES6。
考虑以下对象结构:
const unsorted_object = {
'C': '0003',
'D': '0004',
'A': '0001',
'B': '0002',
'F': '0005',
};
Run Code Online (Sandbox Code Playgroud)
如何按键对JavaScript对象排序?(在这里回答)
const sorted_object = {};
Object.keys(unsorted_object).sort().forEach(function(key) {
sorted_object[key] = unsorted_object[key];
});
Run Code Online (Sandbox Code Playgroud)如何按键值对JavaScript对象排序?
我可能对问题2不太清楚。这个想法是根据键的值而不是键和值对JavaScript对象进行排序。
const unsorted_object = {
'0001': '13.1666',
'0002': '11.0001',
'0003': '10.6664',
'0004': '13.1666',
'0005': '7.3331',
};
Run Code Online (Sandbox Code Playgroud)
输出:
Run Code Online (Sandbox Code Playgroud)'0001': '13.1666' '0004': '13.1666' '0002': '11.0001' '0003': '10.6664' '0005': '7.3331'
python ×8
python-3.x ×6
pyqt ×5
pyqt5 ×5
javascript ×3
php ×2
arrays ×1
comparison ×1
coordinates ×1
ecmascript-6 ×1
f-string ×1
html ×1
json ×1
mysqli ×1
object ×1
position ×1
pyqt4 ×1
qfiledialog ×1
qmainwindow ×1
qmenu ×1
qstatusbar ×1
qtreeview ×1
qtreewidget ×1
sorting ×1
string ×1