Jump to content
  • Jaunākie Ieraksti

    • AndrisBB
      Bet vaitad kāds liedz uzturēt savu iekšējo AI modeli? Mēs ar izmantojam savus serverus, tieši tapēc, lai kods nenonāktu pie konkurentiem.
    • zeds
      It depends. Dažreiz kopējās organizācijas veikspēja palielinās ja ierobežo dažu atsevišku indivīdu radošo brīvību.  Nu un vēl pagaidām AI kompānijām pieder visa informāciju ko Tu tur esi iepostējis , ieskaitot kodu. Un nekur nav noteikts kur un kā viņas ar to dalīsies.
    • AndrisBB
      Bet nu realitāte jau reizēm ir arī savādāka. Kā iepriekšējā darbā, tika (un jorojām tiek) algoti lieki programmētāji/elektroniķi/FPGA-inženieri, tikai tapēc, lai netiktu konkurentiem un viņi nevarētu izstrādāt kādu produktu. Rezultātā lielākā daļa programmētāju tāpat neko nedarija, tik cik aiz garlaicības kasijās viens ar otru iekš code reviews, vai arī tēloja ka strādā pie kautkā 😂 Tāka vietas 'ne-produktivitātei' tur vēl daudz.
    • zeds
    • AndrisBB
      Nu var jau neizmantot to AI, ganjau ir nišas, kur vēl ilgi bez tā iztiks, bet nu ja ir divi kantori, kas veido standarta weblapas/applikācijas, viens algo 20 programmētājus, bet otrs 10, lai iegūtu to pašu rezultātu, tad vainu tas pirmais būs nekonkurētspējigs, vai otrajā darbinieki vai īpašnieki saņems vairāk.
    • AndrisBB
      Pašos pamatos jau visdrīzāk nemainās, ja eksporta apjomi nepieaug un lielāko daļu līdzekļu iztērē karam, tad agri vai vēlu tie resursi sāks iet uz beigām. Nav jau tā ka mūžīgi būs pieejami padomjlaiku krājumi ar ieročiem un 600 miljardi iekrājumi ārvalstu valūtās. Kautkad jau viņi beigsies. Jeb cik tad ilgi tērēs vairāk kā iegūst? Tas tas pats kas dzīvot no iekrājumiem un neko nepelnīt, bet tērēt vairāk kā ierasti.
    • binary
      Dažiem - produktivitāte, citiem - tas, lai darbā AI netiktu izmantots. Ne visi darba devēji vēlas redzēt AI savā saimniecībā. Tici vai nē, bet dažiem darba dvējiem ir "svarīgi", kādi rīki, kādas valodas, kādas prakses darbā tiek izmantotas - pat, ja tām jēdziens "produktīvs" nav pat tuvumā bijis.
    • AndrisBB
      Droši vien kā tā arī būs, ka pirmie bez darba paliks tie, kas nemācēs produktīvi izmantot pieejamos instrumentus. Nu pilnīgi bez darba ganjau nepaliks, bet nebūs tik labi apmaksāti, jo galu galā jau atgriežamies pie pamatiem: produktivitāte == nauda Kas tad darbadevējam svarīgāks? Kā tas kods ir rakstīts vi cik ātri tas kods ir uzrakstīts un cik galu galā izmaksāja.
    • AndrisBB
      Claude Opus dod labākus rezultātus kā Claude Sonet https://www.anthropic.com/news/claude-3-family
    • binary
      Tikpat labi agrāk varēja spriest, kā varēja uzzināt, kuri prot rēķināt (lēni, bet gandrīz pareizi) un kuri - lietot kalkulatoru.   Kādu laiku atpakaļ redzēju video, kur kāda skolotāja izteica savu viedokli par generative AI. Sak', agrāk, kad parādījās kalkulatori, bērniem aizliedza tos izmantot, jo domāja, ka tas tikai notrulinās un nāks par ļaunu. Beigās izrādījās, ka ir mazliet otrādāk - ja iemācās izmantot to kalkulatoru, tad var veltīt laiku daudz sarežģītākām lietām, rezultātā sanāk daudz gudrāki, spējīgāki ļautiņi. Ar AI būtībā tas pats - skolām jāiemācās nevis aizliegt un apkarot AI, bet produktīvi izmantot to mācību procesā.   IMHO tas pats attiecas uz darba vidi… Man iepriekšējā darbā nebija iespējas izmantot AI, rezultātā gan koda rakstīšana bija lēnāka, gan arī tas, ko Andris minēja par reviewiem - tie var prasīt nedēļas, reizēm pat mēnešus. Pēc tāda reviewa ne vairs tā koda rakstīšanai vajadzīgā vide pieejama, nedz vispār brancha jēgu kāds atceras, normāli iemergot visu versiju pamata branchos arī vairs nevar, jo ir simtiem konfliktu. Visai daudz laika (dzīves) sanāk vienkārši izmest mēslainē tādu procesu dēļ. Jācer, ka nākamajā darbā ar attieksmi pret AI būs labāk, tikai vispirms jāatrod to darbu, man kā "programmētājam" tagad grūti, visur AI aizvietojis
    • AndrisBB
      Tāka viss atkarīgs kā pajautā, jeb ko konkrēti vajag, nevis kautkādu nesaprotamu jautājumu. Plus nav ne jausmas, kā tikt pie tā MS Copilota (kas nav domāts koda rakstīšanai). Mans piemērs ir no Claude.
    • HIGH-Zen
      Bildes ir labas, bet piemēra kods? Ir pieejams? O! viss jau ir. Liels paldies, es jau biju nomocījies uzstādīt jautājumus.
    • hehe
      No kuras puses skatās uz krišanu. Ka rietumu šmiga paliek dārgāk jau ir labi krieviem, vairāk izvēlēsies vietējo, šajā gadījumā krievi no kursa un sankcijām tikai iegūst. Par kursu +10 rubļi Gazprom un Rosneft un valsts kase tikai priecāsies, algas un nodokļi ir rubļos, izmaksas pamatā rubļos. Bet veidojas tas no naftas/gāzes cenas tirgū, cik valūtas tā atved uz pārdošanu, ja nafta krīt- rublis kāps, un otrādi. Šeit kā redzams gāzi atbalsta un pieprasījumu globāli uzturēs, ar domu ka tagad maksājam un ņemam no pareizās, dārgās mucas, tas nekas ka tie trauki labāk vai sliktāk ir savienoti un ar tendenci kad infrastruktūras kas dublējas paliek vairāk, galvenais ka krāns tagad ir pareizais. A95 ko iegūst un pārdod par rubļiem nekas nemainas, tā pati peļņa, mainās tas ka tirgotājam rodas vēlme pārdot ārpus RU kur tirdzniecība ir valūtā un pēc kursa ir +10rbļ vairāk. Ja neierobežo tā eksportu būs kā ar granulām te savulaik, deficīts vai augsta cena, nevis tāpēc ka trūkst vai maz nopelna, bet tāpēc ka ir kas maksā vairāk un pārdos tam kur nopelnīs vēl vairāk. Tad nu valsts to sāk regulēt ar eksporta ierobežojumiem.
    • AndrisBB
      Pat strādā     Tik jāpieregulē cik rindas lapā gribi (to viņš ne pārāk precīzi izrēķina), bet tas izskatās ka atkarīgs no lapas izvēlētajām vienībām (milimetri, punkti utt)     from PySide6.QtWidgets import (QApplication, QMainWindow, QTableView, QWidget, QVBoxLayout, QPushButton, QFileDialog) from PySide6.QtCore import Qt, QAbstractTableModel, QRectF from PySide6.QtGui import QPainter, QPageSize from PySide6.QtPrintSupport import QPrintPreviewDialog, QPrinter import sys class TableModel(QAbstractTableModel): def __init__(self, data): super().__init__() self._data = data def rowCount(self, parent=None): return len(self._data) def columnCount(self, parent=None): return len(self._data[0]) if self._data else 0 def data(self, index, role=Qt.DisplayRole): if role == Qt.DisplayRole: return str(self._data[index.row()][index.column()]) return None def headerData(self, section, orientation, role=Qt.DisplayRole): if role == Qt.DisplayRole: if orientation == Qt.Horizontal: return f"Column {section + 1}" return str(section + 1) return None class TablePrinter: def __init__(self, table): self.table = table def print_table(self, printer): painter = QPainter() painter.begin(printer) # Get the table's dimensions model = self.table.model() rows = model.rowCount() cols = model.columnCount() # Calculate cell dimensions page_rect = QRectF(printer.pageRect(QPrinter.Point)) table_width = page_rect.width() cell_width = table_width / cols cell_height = 40 # Adjust this value to change row height # Calculate how many rows can fit on one page page_height = page_rect.height() rows_per_page = int(page_height / cell_height) # TODO: This seems to be incorrect print(rows_per_page) # Initialize position variables current_row = 0 y_position = 0 while current_row < rows: if current_row > 0: printer.newPage() y_position = 0 # Print headers on each page for col in range(cols): header_rect = self.table.model().headerData(col, Qt.Horizontal, Qt.DisplayRole) painter.drawText( QRectF( col * cell_width, y_position, cell_width, cell_height ), Qt.AlignCenter, str(header_rect) ) y_position += cell_height # Print rows for this page rows_on_this_page = min(rows_per_page, rows - current_row) for row in range(rows_on_this_page): for col in range(cols): index = model.index(current_row + row, col) text = model.data(index, Qt.DisplayRole) # Draw cell borders painter.drawRect( QRectF( col * cell_width, y_position, cell_width, cell_height ) ) # Draw cell content painter.drawText( QRectF( col * cell_width, y_position, cell_width, cell_height ), Qt.AlignCenter, str(text) ) y_position += cell_height current_row += rows_per_page painter.end() class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Table Printing Example (PySide6)") self.resize(800, 600) # Create main widget and layout main_widget = QWidget() self.setCentralWidget(main_widget) layout = QVBoxLayout(main_widget) # Create sample data self.sample_data = [ [f"Item {i}", f"Value {i}", f"Data {i}"] for i in range(1, 101) ] # Create and set up table self.table_view = QTableView() self.model = TableModel(self.sample_data) self.table_view.setModel(self.model) layout.addWidget(self.table_view) # Create print buttons print_button = QPushButton("Print") print_button.clicked.connect(self.print_table) layout.addWidget(print_button) preview_button = QPushButton("Print Preview") preview_button.clicked.connect(self.print_preview) layout.addWidget(preview_button) # Create PDF export button pdf_button = QPushButton("Export to PDF") pdf_button.clicked.connect(self.export_to_pdf) layout.addWidget(pdf_button) def print_table(self): printer = QPrinter() printer.setPageSize(QPageSize(QPageSize.A4)) # printer.setPageOrientation(QPrinter.QPageLayout.Portrait) dialog = QPrintPreviewDialog(printer) dialog.paintRequested.connect(self.handle_paint_request) dialog.exec() def print_preview(self): printer = QPrinter() preview_dialog = QPrintPreviewDialog(printer) preview_dialog.paintRequested.connect(self.handle_paint_request) preview_dialog.exec() def export_to_pdf(self): file_name, _ = QFileDialog.getSaveFileName( self, "Export PDF", "table.pdf", "PDF Files (*.pdf)" ) if file_name: printer = QPrinter() printer.setOutputFormat(QPrinter.OutputFormat.PdfFormat) printer.setOutputFileName(file_name) printer.setPageSize(QPageSize(QPageSize.A4)) # printer.setPageOrientation(QPrinter.QPageLayout.Portrait) self.handle_paint_request(printer) def handle_paint_request(self, printer): table_printer = TablePrinter(self.table_view) table_printer.print_table(printer) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec())  
    • Tuubijs
      Nav nedz mazākās nojausmas. Jāprasa Andrim vai Jurkam, tiem saprašanas par notiekošo nav ne kādas, bet viedoklis ir un visu zina
    • HIGH-Zen
      Tas nepalīdzētu, jo AI dotajiem piemēriem jāpalabo arī importi, priekš tam ir PyCharm python redaktors. Tas māk salabot importus.   Pēc vairākiem jautājumiem, kur es pažēlojos, ka redzu pliku baltu lapu. Viņš beidzot iedeva šķību, greizu, bet strādājošu piemēru, kas varētu būt labs starts.   Kreisajā augšējā stūrī ir daļa no tabulas, ko knapi var redzēt un nez kāpēc 250 lapas: Kaut kā jāmēģina komunicēt ar to MS Copilot. Ja nu kāds biedrs grib vai var palīdzēt, tad lūk ir strādājošs kods: # IMPORTS import sys from PySide6.QtWidgets import QApplication, QTableView, QVBoxLayout, QWidget, QPushButton from PySide6.QtPrintSupport import QPrinter, QPrintPreviewDialog from PySide6.QtGui import QPainter, QStandardItemModel, QStandardItem from PySide6.QtCore import Qt, QRect, QPoint # MAIN CLASS class TableViewWidget(QWidget): def __init__(self): super().__init__() self.table = QTableView() self.model = QStandardItemModel(100, 10) # Example: 100 rows, 10 columns self.table.setModel(self.model) self.populate_data() # Button to show print preview of the table self.preview_button = QPushButton("Print Preview") self.preview_button.clicked.connect(self.onPrintPreviewButtonClick) layout = QVBoxLayout() layout.addWidget(self.table) layout.addWidget(self.preview_button) self.setLayout(layout) def populate_data(self): for row in range(100): # Populate with more rows for column in range(10): # Populate with more columns item = QStandardItem(f'Item {row + 1}, {column + 1}') self.model.setItem(row, column, item) # PRINTING def print_preview(self, printer): painter = QPainter(printer) painter.setRenderHint(QPainter.Antialiasing) page_rect = printer.pageRect(QPrinter.Unit.Point) # Use QPrinter.Unit.Point for pageRect # Set up the scaling scale_x = page_rect.width() / self.table.width() scale_y = page_rect.height() / self.table.height() scale_factor = min(scale_x, scale_y) painter.scale(scale_factor, scale_factor) # Calculate total height and rows per page total_rows_height = sum(self.table.rowHeight(row) for row in range(self.model.rowCount())) rows_per_page = int(page_rect.height() / (self.table.rowHeight(0) * scale_factor)) # Calculate number of pages required total_pages = (total_rows_height + rows_per_page - 1) // rows_per_page for page in range(total_pages): if page > 0: printer.newPage() self.print_page(painter, page, rows_per_page) painter.end() def print_page(self, painter, page, rows_per_page): start_row = page * rows_per_page end_row = min(start_row + rows_per_page, self.model.rowCount()) # Ensure only the required rows are visible for row in range(self.model.rowCount()): self.table.setRowHidden(row, row < start_row or row >= end_row) # Render the visible part of the table self.table.render(painter, QPoint(0, 0), QRect(), QWidget.RenderFlag.DrawChildren) # Restore visibility of all rows after rendering for row in range(self.model.rowCount()): self.table.setRowHidden(row, False) def onPrintPreviewButtonClick(self): printer = QPrinter(QPrinter.HighResolution) preview_dialog = QPrintPreviewDialog(printer, self) preview_dialog.paintRequested.connect(self.print_preview) preview_dialog.resize(900, 600) preview_dialog.exec() # PRINTING END if __name__ == '__main__': app = QApplication(sys.argv) widget = TableViewWidget() widget.show() sys.exit(app.exec())  
    • HIGH-Zen
      Man vajag visu QTableView izprintēt kā Ekseļa tabulu, piemēram ar 150 rindām.
    • AndrisBB
      Nu blin no tava jautājuma apraksta var saprast ka tev vajag piemēru kā uztaisīt pagination iekš QTableView Nav man PySide pieinstalēts, bet piemērs ko iedod uz jautājumu Could you give me an example that demonstrates how to print a QTableView including all data, not just the visible portion.   Iedod diezgan sakarīgu kodu.
    • HIGH-Zen
      Apnikušais piemērs ir aptuveni šāds (vai pat sliktāks, jo nav Zoom pa visu lapu un atstarpes no lapas malām): # IMPORTS import sys from PySide6.QtWidgets import QApplication, QTableView, QVBoxLayout, QWidget, QPushButton from PySide6.QtPrintSupport import QPrinter, QPrintDialog, QPrintPreviewDialog from PySide6.QtGui import QPainter, QStandardItemModel, QStandardItem from PySide6.QtCore import Qt, QRect, QPoint # MAIN CLASS class TableViewWidget(QWidget): def __init__(self): super().__init__() self.table3 = QTableView() self.model = QStandardItemModel(10, 3) # Example: 10 rows, 3 columns self.table3.setModel(self.model) self.populate_data() # Button to show print preview of the table self.preview_button = QPushButton("Print Preview") self.preview_button.clicked.connect(self.onPrintPreviewButtonClick) layout = QVBoxLayout() layout.addWidget(self.table3) layout.addWidget(self.preview_button) self.setLayout(layout) def populate_data(self): for row in range(10): for column in range(3): item = QStandardItem(f'Item {row}, {column}') self.model.setItem(row, column, item) # PRINTING def print_preview(self, printer): painter = QPainter(printer) rect = painter.viewport() size = self.table3.size() size.scale(rect.size(), Qt.KeepAspectRatio) # Plusi un mīnusi mani - tās ir atstarpes no lapas malām (HIGH-Zen) painter.setViewport(rect.x()+120*2, rect.y()+120*2, size.width()-240*2, size.height()-240*2) painter.setWindow(self.table3.rect()) self.table3.render(painter, QPoint(), QRect(), QWidget.RenderFlag.DrawChildren) painter.end() def onPrintPreviewButtonClick(self): printer = QPrinter(QPrinter.HighResolution) preview_dialog = QPrintPreviewDialog(printer, self) preview_dialog.paintRequested.connect(self.print_preview) preview_dialog.exec() # PRINTING END if __name__ == '__main__': app = QApplication(sys.argv) widget = TableViewWidget() widget.show() sys.exit(app.exec())  
    • Grossmeister
      95 taču daļēji tiek dotēts ?
  • Foruma statistika

    • Kopā tēmu
      101.5k
    • Kopā ierakstu
      1.5m
×
×
  • Izveidot jaunu...