Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打印按钮工具栏PySide Python_Python_Qt_Browser_Pyside - Fatal编程技术网

打印按钮工具栏PySide Python

打印按钮工具栏PySide Python,python,qt,browser,pyside,Python,Qt,Browser,Pyside,我有一个使用PySide Qt用python编写的浏览器应用程序。但是现在我想在工具栏中添加一个按钮来打印网站。我该怎么做?因为CTRL+P在应用程序中不起作用 代码如下: import sys from PySide import QtCore, QtGui, QtWebKit, QtHelp, QtNetwork class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, se

我有一个使用PySide Qt用python编写的浏览器应用程序。但是现在我想在工具栏中添加一个按钮来打印网站。我该怎么做?因为CTRL+P在应用程序中不起作用

代码如下:

import sys
from PySide import QtCore, QtGui, QtWebKit, QtHelp, QtNetwork

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()

        Action1 = QtGui.QAction('Google', self)
        Action1.setShortcut('Ctrl+M')
        Action1.triggered.connect(self.load_message)
        self.toolbar1 = self.addToolBar('Google')
        self.toolbar1.addAction(Action1)

        Action2 = QtGui.QAction('Yahoo', self)
        Action2.setShortcut('Ctrl+H') 
        Action2.triggered.connect(self.load_list)
        self.toolbar2 = self.addToolBar('Yahoo')
        self.toolbar2.addAction(Action2)

        exitAction = QtGui.QAction('Exit', self)
        exitAction.setShortcut('Ctrl+Q') 
        exitAction.triggered.connect(self.on_exit)
        self.toolbar3 = self.addToolBar('Exit')
        self.toolbar3.addAction(exitAction)

        self.resize(750, 750)
        self.setWindowTitle('Browser')

        self.web = QtWebKit.QWebView(self)
        self.web.load(QtCore.QUrl('http://www.google.com'))
        self.setCentralWidget(self.web)

    def on_exit(self):
        QtGui.qApp.quit

    def load_message(self):
        self.web.load(QtCore.QUrl('http://www.google.com'))

    def load_list(self):
        self.web.load(QtCore.QUrl('http://www.yahoo.com'))

app = QtGui.QApplication(sys.argv)
app.setWindowIcon(QtGui.QIcon('myicon.ico'))
main_window = MainWindow()
main_window.show()    
sys.exit(app.exec_())

\uuuu init\uuuu
方法中添加打印操作:

printAction = QtGui.QAction('Print', self)
printAction.setShortcut('Ctrl+P') 
printAction.triggered.connect(self.do_print)
self.toolbar4 = self.addToolBar('Print')
self.toolbar4.addAction(printAction)
并创建一个
do_print
方法:

def do_print(self):
    p = QtGui.QPrinter()
    p.setPaperSize(QtGui.QPrinter.A4)
    p.setFullPage(True)
    p.setResolution(300)
    p.setOrientation(QtGui.QPrinter.Portrait)
    p.setOutputFileName('D:\\test.pdf')
    self.web.print_(p)
这将打印到文件
D:\test.pdf

要以不同方式配置打印机,请参阅文档。如果需要打印预览对话框,也可以查看文档

如果需要标准打印对话框,请使用:

def do_print(self):
    p = QtGui.QPrinter()
    dialog = QtGui.QPrintDialog(p)
    dialog.exec_()
    self.web.print_(p)

\uuuu init\uuuu
方法中添加打印操作:

printAction = QtGui.QAction('Print', self)
printAction.setShortcut('Ctrl+P') 
printAction.triggered.connect(self.do_print)
self.toolbar4 = self.addToolBar('Print')
self.toolbar4.addAction(printAction)
并创建一个
do_print
方法:

def do_print(self):
    p = QtGui.QPrinter()
    p.setPaperSize(QtGui.QPrinter.A4)
    p.setFullPage(True)
    p.setResolution(300)
    p.setOrientation(QtGui.QPrinter.Portrait)
    p.setOutputFileName('D:\\test.pdf')
    self.web.print_(p)
这将打印到文件
D:\test.pdf

要以不同方式配置打印机,请参阅文档。如果需要打印预览对话框,也可以查看文档

如果需要标准打印对话框,请使用:

def do_print(self):
    p = QtGui.QPrinter()
    dialog = QtGui.QPrintDialog(p)
    dialog.exec_()
    self.web.print_(p)