Переключение на Главную Страницу Страницы: 1 ... 4 5 [6] 7 8 9 ОтправитьПечать
Очень популярная тема (более 25 ответов) на связке Python + Qt пишу для себя чтото... (число прочтений - 70538 )
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #75 - 11. Февраля 2010 :: 08:36
Печать  
С нуля?
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #76 - 11. Февраля 2010 :: 16:02
Печать  
можно и так сказать
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #77 - 11. Февраля 2010 :: 17:54
Печать  
villager писал(а) 11. Февраля 2010 :: 16:02:
можно и так сказать

Велосипедостроение процветает? Улыбка шучу Улыбка
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #78 - 11. Февраля 2010 :: 19:14
Печать  
На Qt? Интересно посмотреть исходники.
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #79 - 11. Февраля 2010 :: 19:39
Печать  
там такая каша Улыбка вот наведу порядок ...
и ничего оригинального, QScrollArea, в ней QGridLayout, в нем QTableWidget(ы), в ячейках QLabel
все параметры отображения ячеек уже храняться в виде CSS и применяются к QLabel без изменения (setStyleSheet), кроме text-align (QT не поддерживает его для QLabel)

Улыбка Сейчас острый приступ лени, как пройдет буду дрессировать drag-and-drop, меню по правой клавише мышки (пока не умею)

  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #80 - 11. Февраля 2010 :: 20:37
Печать  
villager писал(а) 11. Февраля 2010 :: 19:39:
Улыбка Сейчас острый приступ лени, как пройдет буду дрессировать drag-and-drop, меню по правой клавише мышки (пока не умею)
Посмотри мой отчетник. Там меню по правой клавише..
ТОлько драг-дропа нету - лениво Улыбка
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #81 - 12. Февраля 2010 :: 07:50
Печать  
А как с печатью, точными размерами при печати?
Какова скорость при больших таблицах?
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #82 - 12. Февраля 2010 :: 17:35
Печать  
точность есть
напомню, что печатаю не напрямую, а делаю файлы PDF/RTF - а там с этим все  ОК
но потом можно сделать непосредственную печать на QPrinter

до тестирования больших таблиц дело не дошло, но по крайней мере за RTF я спокоен- там все мое и тормозить нечему

собираюсь сделать такой тест - забить QScrollArea в QVBoxLayout c огромным кол-вом QTableView разных размерностей - интересно на каком объеме загнется.
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #83 - 12. Февраля 2010 :: 21:21
Печать  
blindvic писал(а) 12. Февраля 2010 :: 07:50:
Какова скорость при больших таблицах?

Я имею в виду не скорость печати, а заполнение, объем памяти, скроллинг.
Есть/будет возможность объединять ячейки?
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #84 - 13. Февраля 2010 :: 16:57
Печать  
объединение ячеек уже есть в qt
для нужд дизайнера отчетов всего хватает - памяти и скроллинга

вообще до 100 QTableWidget-ов - без проблем

вот тест

Код
Выбрать все
# -*- coding: utf-8 -*-
import os
import time
import random
from copy import copy,  deepcopy
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtXml import *
import re
import sys

class zzPage(QFrame):
    def __init__(self, pageWidth=210,pageHeight=297 ):
        QFrame.__init__(self)
        self.setLayout(zzVL())
        self.pageWidth=pageWidth
        self.layout().setMargin(3)
        self.pageHeight=pageHeight
        self.setLineWidth(1)
        self.setFrameShape(QFrame.Box)
class zzHL(QHBoxLayout):
    def __init__(self):
        QHBoxLayout.__init__(self)
        self.setMargin(0)
        self.setSpacing(0)
class zzVL(QVBoxLayout):
    def __init__(self):
        QVBoxLayout.__init__(self)
        self.setMargin(0)
        self.setSpacing(0)
class zzFL(QFormLayout):
    def __init__(self):
        QFormLayout.__init__(self)
        self.setMargin(0)
        self.setSpacing(0)
class zzGL(QGridLayout):
    def __init__(self, row, col):
        QGridLayout.__init__(self)
        self.setMargin(0)
        self.setSpacing(0)


class zzReportDesigner(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        
        self.aspect=3
        self.widthRowHeightGrid=30
        self.widthGridControl=100
        self.heightColWidhtGrid=20

        self.currentSectionControlPanel=None
        self.currentSection=None
        self.currentRow=None
        self.currentCol=None

        self.currentCellStyle="""background-color: #DDDDFF ; border:solid blue;border-width:1;selection-background-color: lightblue; selection-color: white"""
        self.defaultCellStyle="""background-color: #FFFFFF ; border:solid blue;border-width:1;selection-background-color: lightblue; selection-color: white"""

        self.defaultSectionControlPanelStyle="""background-color: #e4e9d8 ;border:solid black 1px;border-width:1 1 0 1;"""
        layout = zzHL()
        self.setLayout(layout)
        self.page=zzPage()
        self.pageScroll=QScrollArea()
        self.pageScroll.setLayout(zzVL())
        self.pageScroll
        layout.addWidget(self.pageScroll)
        self.propertiesFrame=QFrame()
        self.propertiesFrame.setMaximumWidth(200)
        self.propertiesFrame.setLayout(zzFL())

        self.rightFrame=QFrame()
        self.rightFrame.setLayout(zzVL())

        layout.addWidget(self.rightFrame)
        self.rightFrame.layout().addWidget(self.propertiesFrame)
        self.propertiesFrame.layout().setMargin(3)
        self.propertiesFrame.layout().setSpacing(3)
        self.propertiesFrame.layout().setLabelAlignment(Qt.AlignRight)

        self.propertiesFrame.fontFamily=QFontComboBox()
        self.propertiesFrame.layout().addRow("font-family", self.propertiesFrame.fontFamily)

        self.propertiesFrame.fontSize=QSpinBox()
        self.propertiesFrame.layout().addRow("font-size", self.propertiesFrame.fontSize)

        self.propertiesFrame.textAlign=QComboBox()
        self.propertiesFrame.textAlign.addItems(["left", "center", "justify", "right"])
        self.propertiesFrame.layout().addRow("text-align", self.propertiesFrame.textAlign)

        self.propertiesFrame.borderTopWidth=QSpinBox()
        self.propertiesFrame.borderRightWidth=QSpinBox()
        self.propertiesFrame.borderBottomWidth=QSpinBox()
        self.propertiesFrame.borderLeftWidth=QSpinBox()

        self.propertiesFrame.layout().addRow("border-top-width", self.propertiesFrame.borderTopWidth)
        self.propertiesFrame.layout().addRow("border-right-width", self.propertiesFrame.borderRightWidth)
       .borderBottomWidth)
        self.propertiesFrame.layout().addRow("border-left-width", self.propertiesFrame.borderLeftWidth)

        self.commandFrame=QFrame()
        self.rightFrame.layout().addWidget(self.commandFrame)
        self.commandFrame.setLayout(zzVL())
        self.commandFrame.previewButton=QPushButton (u"Просмотр")
        self.commandFrame.layout().addWidget(self.commandFrame.previewButton)
        self.commandFrame.layout().addStretch()
        
        self.pageScroll.setWidget(self.page)
        self.sections=[]
        d=time.time()
        for x in range(0, 100):
            self.page.layout().addWidget(QTableWidget(10, 10))
        print d-time.time()
        self.page.setFixedWidth(500)
        self.page.adjustSize()
        self.page.setStyleSheet(" border:solid blue;border-width:1")
        print d-time.time()
        


if __name__ == "__main__":
    app = QApplication(sys.argv)
    d=time.time()
    dd=zzReportDesigner()
    dd.show()
    print d-time.time()
    sys.exit(app.exec_())


 

  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #85 - 27. Февраля 2010 :: 20:03
Печать  
Процесс идет...
  

zzReport.png ( 42 KB | Загрузки )
zzReport.png
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #86 - 02. Марта 2010 :: 17:03
Печать  
Первый раз воспользовался дизайнером - понадобилась форма в RTF.
вот мегаскриншот Улыбка
  

zzReport2.png ( 245 KB | Загрузки )
zzReport2.png
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: на связке Python + Qt пишу для себя чтото...
Ответ #87 - 03. Марта 2010 :: 07:45
Печать  
интересно Очень довольный
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #88 - 02. Сентября 2010 :: 07:20
Печать  
Давненько тут никого не было Улыбка... лето...
у меня наконец собрались все куски :
смотреть и пробовать здесь http://www.penta.by/penta_sklad_2.html

в течении месяца буду запускать простенький пробный проект
  
Наверх
 
IP записан
 
villager
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 101
Зарегистрирован: 21. Октября 2009
Re: на связке Python + Qt пишу для себя чтото...
Ответ #89 - 24. Сентября 2010 :: 20:07
Печать  
внедреж пошел Улыбка
сразу два мелких однопользовательских  (SQLite) проектика:

1)выписка документов на СТО автомобилей (5 справочников, 1 документ с тремя детальными таблицами, несколько отчетов)
2)выписка доверенностей в бухгалтерии (6 справочников, 1 док с одной детальной частью)

недоделки сразу поперлиУлыбка, но работает
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 4 5 [6] 7 8 9
ОтправитьПечать