Qt5.10为什么TableView里不能通过按钮添加新的一行数据?

为什么TableView里不能通过按钮添加新的一行

代码如下:

    QSqlTableModel *docInfoViewModel;

按钮的槽

 void on_addStaff_clicked();

设置model的代码


   docInfoViewModel=new QSqlTableModel(ui->tableView);

   docInfoViewModel->setTable("Staff_Info"); 

   ui->tableView->setModel(docInfoViewModel);

   docInfoViewModel->select();

   docInfoViewModel->setHeaderData(0,Qt::Horizontal,"编号");
   docInfoViewModel->setHeaderData(1,Qt::Horizontal,"姓名");

   docInfoViewModel->setHeaderData(2,Qt::Horizontal,"学历");

   docInfoViewModel->setHeaderData(3,Qt::Horizontal,"职称");

   docInfoViewModel->setHeaderData(4,Qt::Horizontal,"科室");
   docInfoViewModel->setHeaderData(5,Qt::Horizontal,"专长");

按钮的槽函数如下

void root_admin::on_addStaff_clicked()
{

    QSqlRecord staff_Record=docInfoViewModel->record();
    int docinfoRow=docInfoViewModel->rowCount();
    docInfoViewModel->insertRecord(docinfoRow,staff_Record);
}

ui界面如下

图片说明

1个回答

问题已解决,重新构建了一次项目以后就可以了,可还是不清楚为什么会导致这个情况,望大神们指出原因

偶尔还是不行,重新构建都无法实现添加数据

求解决方法

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
qt5.5执行ui->tableView->setModel(model)提示意外停止
![图片说明](https://img-ask.csdn.net/upload/201602/16/1455629104_646554.png) qt5.5使用QSQLTE,使用QSqlTableModel查询数据库,一旦执行让tableview中显示数据库数据的语句ui->tableView->setModel(model), 运行就提示已停止工作,求解。 ui界面只有一个tableview。 工程文件结构如图: ![](https://img-ask.csdn.net/upload/201602/16/1455629593_708344.png) 代码如下: 1.widget.cpp中 ``` #include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { model = new QSqlTableModel(this); model->setTable("student"); model->setEditStrategy(QSqlTableModel::OnManualSubmit); model->select(); ui->tableView->setModel(model); /*QTableView *view = new QTableView; view->setModel(model); view->show();*/ //ui->setupUi(this); } Widget::~Widget() { delete ui; } ``` 2.main.cpp ``` #include "widget.h" #include <QApplication> #include "database.h" #include <QTextCodec> int main(int argc, char *argv[]) { QApplication a(argc, argv); QTextCodec::setCodecForLocale(QTextCodec::codecForLocale()); if(!createConnetion()) return 1; Widget w; w.show(); return a.exec(); } ``` 3.database.h中 ``` #ifndef DATABASE_H #define DATABASE_H #include <QSqlDatabase> #include <QSqlQuery> #include <QObject> static bool createConnetion() { QSqlDatabase db= QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("database.db"); if(!db.open()) return false; QSqlQuery query; query.exec(QObject::tr("create table student (id int primary key,name vchar)")); query.exec(QObject::tr("insert into student values (0,'fece0')")); query.exec(QObject::tr("insert into student values (1,'fece1')")); query.exec(QObject::tr("insert into student values (2,'fece2')")); return true; } #endif // DATABASE_H ``` 4.widget.h中 ``` #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QSqlTableModel> namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); private: Ui::Widget *ui; QSqlTableModel *model; }; #endif // WIDGET_H ```
Qt4.7.0的表格移除一行后垂直表头无法移除?
Qt的表格移除一行后,垂直表头无法相应地移除,我用的是4.7.0的版本,试了TableWidget和TableView都不行,是这个版本本身的Bug吗?怎么解决?
Qt tableview刷新之后仍然选中某一行
Qt的tableView界面有个定时器自动刷新数据,因为请求数据比较频繁,三秒刷新一次,但是选中某一行之后右键菜单时如果正巧碰上刷新,之前选中的那行就不会被选中了,我想刷新之后始终都是选中这一行的,请问有什么好办法能解决这个问题吗
xcode6.4的tableview不显示title,怎么让它显示?
tableview不显示titile那块部分,一开始发现在navigation controller连在一起的tableview里,storyboard看着明明是有的,可是运行模拟器的时候,就是显示不出来。 ![这是sroryboard里的tableview](https://img-ask.csdn.net/upload/201508/11/1439271024_632453.jpg) ![这是模拟器运行出来的效果,那块title的地方就是死活不出来](https://img-ask.csdn.net/upload/201508/11/1439271131_150291.jpg) 菜鸟入门学习xcode中,有谁能帮我解答吗?
#qml使用TableView动态加载表,求大神帮助???
为什么加载第一个表的时候可以显示全部,第二次选择加载另一个表后更新的内容没写上去?(第一个表原有的列就会更新,新增加的就不会写进去) 第一次显示的表: ![图片说明](https://img-ask.csdn.net/upload/201912/12/1576113858_758108.png) 第二次显示的表: ![图片说明](https://img-ask.csdn.net/upload/201912/12/1576113912_333256.png) import QtQuick 2.0 import QtQuick.Controls 2.7 import Qt.labs.platform 1.1 import QtQuick.Controls 1.4 import QtCharts 2.3 TableView{ id:resultTab width:560 height: 620 anchors.top:parent.top anchors.topMargin:60 anchors.left: parent.left anchors.leftMargin: 30 model: tablemode } ListModel {//单表的行数据 id: tablemode } function bigTab(name,msge){ var msg=JSON.parse(msge) var count = resultTab.columnCount; tablemode.clear(); resultTab.model.clear() for(var f=0;f<count ;f++){ resultTab.removeColumn(0) } // 循环添加TableViewColumn for( var i=0;i<msg.title.length;i++){ var str = 'import QtQuick 2.7; import QtQuick.Controls 1.4; TableViewColumn {role: "' + msg.title[i] + '"; title: "' + msg.title[i] + '"; width: 100 ;resizable:false }'; resultTab.addColumn(Qt.createQmlObject(str,resultTab,"dynamicSnippet1")); } for( var u=0;u<msg.data.length;u++){ var json = new Object for( var j=0;j<msg.data[u].length;j++){ var role = msg.title[j] json[role]=msg.data[u][j] if (typeof(msg.data[u][j]) === "number"){ json[role]=msg.data[u][j] .toFixed(3) } json[role]= json[role].toString() } tablemode.append(json) } }
Qt tableview的设置一个cell为被选中状态
我想在tableview中添加一个查找功能,查找之后返回一个index,然后用setCurrentIndex设置,但是跟鼠标点击过去的效果不一样,如何实现当前索引为鼠标点击的效果
关于QT的tableview 选中行的问题,求大神解答。
求问一下,我创建了一个tableview,添加了一些Item。问题是当前无选中行,但是我右键菜单弹出之后会发送一个信号去自动选择第一行第一个Item,我很迷惑,找不到怎么解决。求大神相助。
QT tableview怎么设置某一列最大值颜色
QT tableview怎么设置某一列最大值颜色,根据获取的值来设置某一列最大值颜色
centos下用QT对.xls格式进行导入与导出,用到什么第三方的库呢?
例如导入,即将一个已存在的execl文件进行读写,然后在qt的ui中调用tableview去显示; 例如导出,将tableview中的值生成一个execl文件。
javafx 的 TableView 报错 lang.NullPointerException
如果把含有 TableView 的 fxml ( personnel.fxml ),放在第一个 Stage 窗口显示,则 TableView 中的内容能够正常显示。但是如果放在其他 Stage 窗口,则会报 NullPointerException。 ``` java.lang.NullPointerException at view.MyController.showList(MyController.java:135) at view.MyController.personnel(MyController.java:114) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at sun.reflect.misc.Trampoline.invoke(Unknown Source) at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at sun.reflect.misc.MethodUtil.invoke(Unknown Source) at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769) at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Node.fireEvent(Node.java:8411) at javafx.scene.control.Button.fire(Button.java:185) at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89) at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Scene$MouseHandler.process(Scene.java:3757) at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485) at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762) at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:394) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:432) at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389) at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:431) at com.sun.glass.ui.View.handleMouseEvent(View.java:555) at com.sun.glass.ui.View.notifyMouse(View.java:937) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177) at java.lang.Thread.run(Unknown Source) ``` TalbeView 定义: ``` Mycontroller.java package view; import java.net.URL; import java.util.ResourceBundle; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.PasswordField; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.TextField; import javafx.scene.control.cell.PropertyValueFactory; import javafx.stage.Stage; import model.*; import control.*; public class MyController implements Initializable { @FXML private Button login; @FXML private TextField user; @FXML private PasswordField password; @FXML private Button okay,personnel,department; @FXML private TableView<Person> PersonTable; @FXML private TableColumn ID; @FXML private TableColumn NAME; @Override public void initialize(URL location, ResourceBundle resources) { // TODO (don't really need to do anything here). } // When user click on myButton // this method will be called. public void login(ActionEvent event) {//登录界面 if (false) { Stage LoginFailed = new Stage(); try { // Read file fxml and draw interface. Parent root = FXMLLoader.load(getClass() .getResource("/view/LoginFailed.fxml")); LoginFailed.setTitle("登陆失败"); LoginFailed.setScene(new Scene(root)); LoginFailed.show(); } catch(Exception e) { e.printStackTrace(); } } else { Stage primaryStage = (Stage)login.getScene().getWindow(); primaryStage.close(); Stage ChooseTable = new Stage(); try { // Read file fxml and draw interface. Parent root = FXMLLoader.load(getClass() .getResource("/view/ChooseTable.fxml")); ChooseTable.setTitle("请选择您要管理的表格"); ChooseTable.setScene(new Scene(root)); ChooseTable.show(); } catch(Exception e) { e.printStackTrace(); } } } public void okay(ActionEvent event) { Stage LoginFailed= (Stage)okay.getScene().getWindow(); LoginFailed.close(); } public void personnel(ActionEvent event) { Stage choose= (Stage)personnel.getScene().getWindow(); choose.close(); Stage personnel = new Stage(); try { // Read file fxml and draw interface. //showList(); Parent root = FXMLLoader.load(getClass() .getResource("/view/Sample.fxml")); personnel.setTitle("人员管理"); personnel.setScene(new Scene(root)); showList();//显示表格 personnel.show(); } catch(Exception e) { e.printStackTrace(); } } public void department(ActionEvent event) { Stage choose= (Stage)okay.getScene().getWindow(); choose.close(); } public void showList(){ ObservableList<Person> list = FXCollections.observableArrayList(); //ObservableList<User> list = FXCollections.observableArrayList(); Person p1 = new Person(); //User user = new User();//构建值对象 p1.setId("小六"); p1.setName("123"); //colUsername.setCellValueFactory(new PropertyValueFactory("id"));//映射 ID.setCellValueFactory(new PropertyValueFactory("id")); NAME.setCellValueFactory(new PropertyValueFactory("name")); list.add(p1); //list 添加值对象 PersonTable.setItems(list); //tableview 添加 list } } Person.java package model; public class Person { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } ``` Main.java ``` package control; import javafx.application.Application; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.stage.Stage; import model.Person; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { try { // Read file fxml and draw interface. Parent root = FXMLLoader.load(getClass() .getResource("/view/MainScene.fxml")); primaryStage.setTitle("My Application"); primaryStage.setScene(new Scene(root)); primaryStage.show(); } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } } package control; import javafx.application.Application; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.stage.Stage; import model.Person; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { try { // Read file fxml and draw interface. Parent root = FXMLLoader.load(getClass() .getResource("/view/MainScene.fxml")); primaryStage.setTitle("My Application"); primaryStage.setScene(new Scene(root)); primaryStage.show(); } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } } ``` personnel.fmxl ``` <?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import java.lang.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.layout.AnchorPane?> <AnchorPane prefHeight="309.0" prefWidth="349.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="view.MyController"> <children> <SplitPane dividerPositions="0.30547550432276654" layoutY="-4.0" prefHeight="315.0" prefWidth="349.0"> <items> <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0"> <children> <Group> <children> <Button layoutX="24.0" layoutY="204.0" mnemonicParsing="false" text="delete" /> <Button layoutX="24.0" layoutY="157.0" mnemonicParsing="false" prefHeight="23.0" prefWidth="59.0" text="add" /> <Button layoutX="24.0" layoutY="116.0" mnemonicParsing="false" prefHeight="23.0" prefWidth="56.0" text="alter" /> <Button layoutX="24.0" layoutY="74.0" mnemonicParsing="false" text="lookup" /> </children> </Group> </children> </AnchorPane> <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="204.0" prefWidth="266.0"> <children> <TableView fx:id="PersonTable" prefHeight="313.0" prefWidth="238.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <columns> <TableColumn fx:id="ID" prefWidth="85.0" text="ID" /> <TableColumn fx:id="NAME" prefWidth="152.0" text="NAME" /> </columns> </TableView> </children> </AnchorPane> </items> </SplitPane> </children> </AnchorPane> ```
iOS tableView.tableHeaderView 怎样改变跟随与不跟随cell滑动.
tableView.tableHeaderView=view; 是跟随cell一起滚动的, 我想将cell滚动一定位置关闭headerView跟随滚动.
cocos2dx3.2 tableview的问题!!!
cocos2dx3.2初学者,想使用tableview, class HelloWorld : public cocos2d::Layer,TableViewDataSource,TableViewDelegate 下面的CREATE_FUNC(HelloWorld)一直报错 ~Allocating an object of abstract class type'HelloWorld' 求解决办法。。。
xcode7.1.1的下划线怎么不见了,而且在拖动的时候才出现,并不停得闪动
xcode7.1.1tableview的下划线怎么不见了,而且在拖动的时候才出现,并不停得闪动。这是怎么回事呢?求大神解答
iOS 的如何用scrollView来添加视图控制器里面的tableView?
![我想要实现一个类似tabBar的功能,但是可以滑动显示视图控制器的,像网易新闻和百度新闻那样,但是用scrollView添加视图控制器的view之后,里面的tableView我滑动一下它内容就不显示了,不知道怎么回事?有人知道吗?大神帮忙回答一下行吗?谢谢!图片说明](https://img-ask.csdn.net/upload/201511/20/1448020905_803116.png) 麻烦大神帮我看看是哪里错了? ![图片说明](https://img-ask.csdn.net/upload/201511/20/1448021138_637961.png) ![图片说明](https://img-ask.csdn.net/upload/201511/20/1448021053_700990.jpg)
iOS TableView的FooterView添加的按钮转场后出问题
![图片说明](https://img-ask.csdn.net/upload/201609/01/1472723775_967696.png)t这是ableView的footView,我在模拟器上点+的按钮转场回来后+还可以点,但是在真机上面转场回来后就不能点了,要刷新下整个界面才能点,有人碰过这奇葩问题么
Javafx TableView如何添加序号列呢?
accountColumn.setCellValueFactory(cellData -> cellData.getValue().accountProperty()); passwordColumn.setCellValueFactory(cellData -> cellData.getValue().passwordProperty()); serverColumn.setCellValueFactory(cellData -> cellData.getValue().serverProperty()); roleNameColumn.setCellValueFactory(cellData -> cellData.getValue().roleNameProperty()); 因为TableView涉及删除条目。不可能把序号放在model类里面做成一个单独的成员。这是四种其他属性。已经添加到了TableView中。但是序号应该怎么添加呢?
iOS 在tableview的每个cell上添加button,button的颜色问题
iOS 在tableview的每个cell上添加button,当选中时候,button的颜色为蓝色,边框宽度为1,为选中时边框颜色为灰色,边框宽度为0.5,问题是:点击其他cell中的button时候刷新单元格,button的边框颜色刷新失败,还是蓝色,但是边框宽度却刷新成功,变为0.5,如下图所示,求解刷新边框颜色失败的原因及解决方案!非常感谢!如能解决问题定及时采纳!谢谢![图片说明](https://img-ask.csdn.net/upload/201603/25/1458891467_715390.png)![图片说明](https://img-ask.csdn.net/upload/201603/25/1458891483_462977.png)
QT中的tableview如何删除指定单元格的值?
如题 QT中的tableview如何删除指定单元格的值? QT中的tableview如何删除指定单元格的值?
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Linux(服务器编程):15---两种高效的事件处理模式(reactor模式、proactor模式)
前言 同步I/O模型通常用于实现Reactor模式 异步I/O模型则用于实现Proactor模式 最后我们会使用同步I/O方式模拟出Proactor模式 一、Reactor模式 Reactor模式特点 它要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生,有的话就立即将时间通知工作线程(逻辑单元)。除此之外,主线程不做任何其他实质性的工作 读写数据,接受新的连接,以及处...
阿里面试官问我:如何设计秒杀系统?我的回答让他比起大拇指
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图和个人联系方式,欢迎Star和指教 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了...
五年程序员记流水账式的自白。
不知觉已中码龄已突破五年,一路走来从起初铁憨憨到现在的十九线程序员,一路成长,虽然不能成为高工,但是也能挡下一面,从15年很火的android开始入坑,走过java、.Net、QT,目前仍处于android和.net交替开发中。 毕业到现在一共就职过两家公司,目前是第二家,公司算是半个创业公司,所以基本上都会身兼多职。比如不光要写代码,还要写软著、软著评测、线上线下客户对接需求收集...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n...
一文详尽系列之模型评估指标
点击上方“Datawhale”,选择“星标”公众号第一时间获取价值内容在机器学习领域通常会根据实际的业务场景拟定相应的不同的业务指标,针对不同机器学习问题如回归、分类、排...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
压测学习总结(1)——高并发性能指标:QPS、TPS、RT、吞吐量详解
一、QPS,每秒查询 QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。 二、TPS,每秒事务 TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip installselenium -ihttps://pypi.tuna.tsinghua.edu.cn/simple/ ...
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
程序员该看的几部电影
1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?如何...
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
还记得那个提速8倍的IDEA插件吗?VS Code版本也发布啦!!
去年,阿里云发布了本地 IDE 插件 Cloud Toolkit,仅 IntelliJ IDEA 一个平台,就有 15 万以上的开发者进行了下载,体验了一键部署带来的开发便利。时隔一年的今天,阿里云正式发布了 Visual Studio Code 版本,全面覆盖前端开发者,帮助前端实现一键打包部署,让开发提速 8 倍。 VSCode 版本的插件,目前能做到什么? 安装插件之后,开发者可以立即体验...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
2019年除夕夜的有感而发
天气:小雨(加小雪) 温度:3摄氏度 空气:严重污染(399) 风向:北风 风力:微风 现在是除夕夜晚上十点钟,再有两个小时就要新的一年了; 首先要说的是我没患病,至少现在是没有患病;但是心情确像患了病一样沉重; 现在这个时刻应该大部分家庭都在看春晚吧,或许一家人团团圆圆的坐在一起,或许因为某些特殊原因而不能团圆;但不管是身在何处,身处什么境地,我都想对每一个人说一句:新年快乐! 不知道csdn这...
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o...
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
2020年的1月,我辞掉了我的第一份工作
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 我自己知道的,在写自己的博客方面,我的文笔很一般,非技术类的文章不想去写;另外我又是一个还比较热衷于技术的人,而平常复杂一点的东西,如果想写文章写的清楚点,是需要足够...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
节后首个工作日,企业们集体开晨会让钉钉挂了
By 超神经场景描述:昨天 2 月 3 日,是大部分城市号召远程工作的第一天,全国有接近 2 亿人在家开始远程办公,钉钉上也有超过 1000 万家企业活跃起来。关键词:十一出行 人脸...
Java基础知识点梳理
虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便后面查阅,一方面为了掌握好Android打下基础。
2020年全新Java学习路线图,含配套视频,学完即为中级Java程序员!!
新的一年来临,突如其来的疫情打破了平静的生活! 在家的你是否很无聊,如果无聊就来学习吧! 世上只有一种投资只赚不赔,那就是学习!!! 传智播客于2020年升级了Java学习线路图,硬核升级,免费放送! 学完你就是中级程序员,能更快一步找到工作! 一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。 在Java基础板块中有6个子模块的学...
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合...
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
相关热词 c# id读写器 c#俄罗斯方块源码 c# linq原理 c# 装箱有什么用 c#集合 复制 c# 一个字符串分组 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图
立即提问