Qt и QtPy Всплывающее сообщение [дубликат]

вы можете использовать статический метод -> dataTableToCsv

google.visualization.dataTableToCsv

, это создаст строку csv данных в таблице данных.

он не будет экспортировать заголовки столбцов, но они могут быть добавлены вручную ...

см. следующий рабочий фрагмент ...

google.charts.load('current', {
  packages: ['corechart']
}).then(function () {
  var data = google.visualization.arrayToDataTable([
    ['Label', 'Value'],
    ['A', 10],
    ['B', 20],
    ['C', 30],
    ['D', 40],
    ['E', 50],
    ['F', 60]
  ]);

  var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
  chart.draw(data);

  $('.csv-button').on('click', function () {
    var browserIsIE;
    var csvColumns;
    var csvContent;
    var downloadLink;
    var fileName;

    // build column headings
    csvColumns = '';
    for (var i = 0; i < data.getNumberOfColumns(); i++) {
      csvColumns += data.getColumnLabel(i);
      if (i < (data.getNumberOfColumns() - 1)) {
        csvColumns += ',';
      }
    }
    csvColumns += '\n';

    // build data rows
    csvContent = csvColumns + google.visualization.dataTableToCsv(data);

    // download file
    browserIsIE = false || !!document.documentMode;
    fileName = 'data.csv';
    if (browserIsIE) {
      window.navigator.msSaveBlob(new Blob([csvContent], {type: 'data:text/csv'}), fileName);
    } else {
      downloadLink = document.createElement('a');
      downloadLink.href = 'data:text/csv;charset=utf-8,' + encodeURI(csvContent);
      downloadLink.download = fileName;
      raiseEvent(downloadLink, 'click');
      downloadLink = null;
    }
  });

  function raiseEvent(element, eventType) {
    var eventRaised;
    if (document.createEvent) {
      eventRaised = document.createEvent('MouseEvents');
      eventRaised.initEvent(eventType, true, false);
      element.dispatchEvent(eventRaised);
    } else if (document.createEventObject) {
      eventRaised = document.createEventObject();
      element.fireEvent('on' + eventType, eventRaised);
    }
  }
});




3
задан reclosedev 17 February 2012 в 17:12
поделиться

2 ответа

Как я понимаю, вы используете Ui_mainWindow, сгенерированный из файла .ui. Как вы видите Ui_mainWindow, это просто класс python, который содержит виджеты. getOpenFileName возвращает экземпляр QWidget в качестве первого параметра. Поэтому вам нужно подклассы QWidget или QMainWindow и определить методы в этом классе.

Код будет выглядеть так:

import sys

from PyQt4 import QtCore, QtGui

from file_with_ui import Ui_MainWindow

class Main(QtGui.QMainWindow, Ui_MainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.setupUi(self)

    def browse(self):
        filename = QtGui.QFileDialog.getOpenFileName(self, 'Open File', '.')
        fname = open(filename)
        data = fname.read()
        self.textEdit.setText(data)
        fname.close()

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    window = Main()
    window.show()
    sys.exit(app.exec_())

В качестве альтернативы вы можете сохранить ui как Атрибут экземпляра:

class Main(QtGui.QMainWindow):
    def __init__(self):
         QtGui.QMainWindow.__init__(self)
         self.ui=Ui_MainWindow()
         self.ui.setupUi(self)

И вводит ваши элементы управления через self.ui, например: self.ui.textEdit.setText(data)

. Рассмотрим учебное пособие по pyuic использованию PyQt по примеру (сеанс 1)

8
ответ дан reclosedev 5 September 2018 в 08:38
поделиться

импортировать следующее:

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4 import QtGui, QtCore

В классе Ui_MainWindow (объект) заменить объект на QWidget:

Ui_MainWindow(QWidget)
2
ответ дан Mohammad Hosein Abbasi 5 September 2018 в 08:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: