在这里很难说出要问什么。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开,
请访问帮助中心。
8年前关闭。
我有一个连接到mysql数据库并在QTableView中显示查询结果的Python和PySide应用程序。我需要打印表视图的内容。这是一些代码:
self.db_table = QtGui.QTableView(self)
self.model = QtSql.QSqlQueryModel()
self.model.setQuery("SELECT * FROM simpsons")
self.model.setHeaderData(1, QtCore.Qt.Horizontal, self.tr("First Name"))
self.model.setHeaderData(2, QtCore.Qt.Horizontal, self.tr("Last Name"))
self.db_table.setModel(self.model)
self.print_btn = QtGui.QPushButton("Print")
self.print_btn.clicked.connect(self.print_btn_clicked)
def print_btn_clicked(self):
printDialog = QtGui.QPrintDialog(self.printer, self)
if printDialog.exec_() == QtGui.QDialog.Accepted:
#printing code
我找不到为此提供示例,并且我对文档的了解不多,因此希望获得一些帮助
一种方法是将表内容转储到中QTextDocument
,然后打印出来。
以下演示使用了一个简单的文本表,但是可以使用html来获取更复杂的格式:
from PyQt4 import QtGui, QtCore
class Window(QtGui.QWidget):
def __init__(self, rows, columns):
QtGui.QWidget.__init__(self)
self.table = QtGui.QTableView(self)
model = QtGui.QStandardItemModel(rows, columns, self.table)
for row in range(rows):
for column in range(columns):
item = QtGui.QStandardItem('(%d, %d)' % (row, column))
item.setTextAlignment(QtCore.Qt.AlignCenter)
model.setItem(row, column, item)
self.table.setModel(model)
self.buttonPrint = QtGui.QPushButton('Print', self)
self.buttonPrint.clicked.connect(self.handlePrint)
self.buttonPreview = QtGui.QPushButton('Preview', self)
self.buttonPreview.clicked.connect(self.handlePreview)
layout = QtGui.QGridLayout(self)
layout.addWidget(self.table, 0, 0, 1, 2)
layout.addWidget(self.buttonPrint, 1, 0)
layout.addWidget(self.buttonPreview, 1, 1)
def handlePrint(self):
dialog = QtGui.QPrintDialog()
if dialog.exec_() == QtGui.QDialog.Accepted:
self.handlePaintRequest(dialog.printer())
def handlePreview(self):
dialog = QtGui.QPrintPreviewDialog()
dialog.paintRequested.connect(self.handlePaintRequest)
dialog.exec_()
def handlePaintRequest(self, printer):
document = QtGui.QTextDocument()
cursor = QtGui.QTextCursor(document)
model = self.table.model()
table = cursor.insertTable(
model.rowCount(), model.columnCount())
for row in range(table.rows()):
for column in range(table.columns()):
cursor.insertText(model.item(row, column).text())
cursor.movePosition(QtGui.QTextCursor.NextCell)
document.print_(printer)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window(25, 2)
window.resize(300, 400)
window.show()
sys.exit(app.exec_())
问题内容: 搜索过,但没有找到满意的答案。 我知道没有可移植的方式来打印pthread_t。 您如何在您的应用程序中做到这一点? 更新: 实际上,我不需要pthread_t,但是需要一些小的数字ID,以便在调试消息中标识不同的线程。 在我的系统(64位RHEL 5.3)上,它被定义为unsigned long int,因此它的数量很大,仅打印它就在调试行中占据了宝贵的位置。 gdb 如何 分配 短
我正在从这个网站上阅读JSON格式的数据https://data.melbourne.vic.gov.au/api/views/ntht-5rk7/rows.json?accessType=DOWNLOAD 我开发了一个Python程序,将数据假脱机到CSV文件中。我花了一段时间才理解了这个系统的结构。 Python中有没有一种方法可以扫描文件,然后打印出文件字典结构和数据列表结构?这将有助于我在
问题内容: 我正在为具有内置行式打印机的Android设备开发应用程序。我必须与此打印机进行交互,并使用它来打印收据上的详细信息,然后使用裁纸器自动剪切该收据。我已经在其中看到了一些ESC命令,但是我不知道如何执行这些ESC命令。 关于Casio设备打印机,我有三个主要问题: 1.我已经使用了内置打印机的打印代码,但是打印后切纸刀没有激活 2.我不知道如何在android中将ESC命令发送到打印机
我知道如何为数字数据类型执行此操作,但请告诉我的字符串数组。 假设在java中有一个由10个元素组成的字符串数组。一些元素包含单词,但其他元素不包含任何内容。 如何运行只打印非空元素的for循环?
问题是,在这种代码状态下,文件和目录是这样打印的: 但是我需要先打开目录,然后打开文件:靠近。我试图找出问题出在哪里,但无济于事。我需要改变什么,在代码中的哪里得到想要的结果?
问题内容: 我发现了这种奇怪: 输出: 这是如何运作的? 问题答案: 该数字适合64位,其二进制表示为: 程序从右到左为每个5位组解码一个字符 对于5位,可以表示2 = 32个字符。英文字母包含26个字母,因此除字母外还留出32-26 = 6个符号的空间。通过这种编码方案,您可以拥有全部26个(一种情况)的英文字母和6个符号(其中是空格)。 算法说明 该从组到组中的for循环跳跃,则5位组被分离安